2014-02-18 64 views
0

我有發佈帖子的自定義表單。首次創建新帖子時,沒有現有的帖子ID,因此,只有保存帖子併爲該帖子生成了ID後,才能將帖子附加到帖子中。將帖子ID分配給新的wp.media對象

我做的第一件事是發起自動保存,以便生成一個帖子ID來表示新帖子。但是,我無法弄清楚如何使用這個新ID更新wp.media對象,以便上傳的帖子被分配到在自動保存期間生成的ID。

有沒有辦法用新的帖子ID重新初始化wp.media對象?

編輯

我發現這個資源,但它似乎並沒有涉及如何分配一個ID後,我似乎無法找到它由混帳或者引用的源代碼...

https://github.com/thomasgriffin/New-Media-Image-Uploader/blob/master/js/media.js

更新

貌似我能夠通過簡單地這樣做是爲了重新分配後ID爲wp.media對象:

wp.media.model.settings.post.id = new_id; 

不過,我現在遇到了一些權限問題。作爲管理員,一切正常,但與其他用戶一樣,我收到錯誤「上傳中發生錯誤,請稍後再試。」

保存帖子後,所有用戶都可以正常上傳,但由於某種原因,在將新ID分配給wp.media對象後,它不允許我使用非管理員用戶上傳。

R

回答

0

最後整理出來。

AJAX用於在用戶編輯帖子時在後臺啓動自動保存。當返回自動保存ID,它重新分配給wp.media對象是這樣的:

wp.media.model.settings.post.id = autos_save_id; 

的權限問題我正經歷從簡單的事實,我的用戶角色沒有足夠的'來了edit_post'功能。咄。

+0

哈,我已經完成了相同的操作員錯誤。我只是準備發佈一個建議來鉤住和重新分配/更新JS obj。很高興在相同的波長。 –

0

如果我記得沒錯,媒體有一個ID就像post/pages。由編輯/系統來關聯媒體發佈。

當我上傳一個圖片(媒體)給我的本地開發我通過編輯:

site.com/wp-admin/post.php?post=19&action=edit 

其中19是媒體ID。

如果我轉到site.com/?p=19我轉發到site.com/?attachment_id=19並查看媒體。

關於帖子/頁面(自定義表格) - 正確實施時,首次保存(提交)後,帖子獲得一個ID。該ID保持不變。 (注意自動保存帖子ID等)。

告訴我更多關於「wp.media對象」的知識或者如果我錯過了某些內容,請告知我們?

+0

wp.media是處理媒體上傳器的JavaScript對象。例如,當您在編輯帖子時單擊「添加媒體」按鈕。我的問題是,如何告訴wp.media對象什麼post ID將附加上傳到?自動保存之前,該ID爲0,自動保存後,我需要將ID傳遞給wp.media對象。 – HWD

+0

酷thx澄清。我不會像JS那樣混亂。所以,正如你所說的那樣,在自動保存後,你可以得到帖子ID。 W /圖片上傳我從帖子表單/多部分抓取了這個:'''name =「post_id」25'''做了鍵/值對:post_id:25。一旦發佈,p = 25將帶我到崗位。這似乎是由來源確認:https://github.com/WordPress/WordPress/blob/master/wp-admin/async-upload.php#L75 - 所以發送「post_id」$ _REQUEST($ _POST )應該讓它堅持下去。 –

+0

感謝您的幫助。我遇到的問題是重新初始化wp.media javascript對象,而不要求用戶先發布/保存帖子。自動保存後,我已獲得帖子ID,現在如何通過javascript將它傳遞給wp.media?標準WordPress的帖子屏幕似乎這樣做很好,我只是不知道如何... – HWD