そのワードプレス+ jQueryの質問です。私はそれがワードプレスの知識も含むと信じているのでそれをstackoverflowに投稿することはできません。
達成しようとしていること: "add post"ページのメタボックスにwordpress async media uploaderを付けて、ユーザーがそれらをアップローダにドラッグアンドドロップするだけでアップロードできるようにします。一度に1つずつ挿入する必要はありません(画像を参照)。
ユーザーが1つの画像を複数の投稿に添付できるように、添付IDを投稿メタに保存しています。
質問:アップロード者がアップロード要求をasync-upload.php
に送信すると、タイトル、キャプション、添付ファイルの説明を追加するためのフォーム全体を含むHTML応答が返送されます。応答の最初のものはこれです。
<input type='hidden' id='type-of-106' value='image' />
ここで完全な回答 を見ることができます 。
私の質問は、どのようにそのHTMLレスポンスから添付ファイルIDを取得するのですか?私はasync-upload.php
から来るすべてのajaxレスポンスをリッスンしなければならないと思っています。
私はできましたが、たとえそれがオープンソースコードであったとしても、私は本当にここに他人の作品を投稿したくありません。
Rilwis Meta Box Classにはカスタムアップロードハンドラを持つpluploadフィールドがあります。ご覧になりたい場合は、 https://github.com/rilwis/meta-box をご覧ください。
resp: https://github.com/rilwis/meta-box/blob/master/inc/fields/plupload-image.php#L31
答えはそこにあります。このコード、あるいは少なくともアイデアは、あなたがレスポンスをもっとコントロールすることを可能にします。
返答の種類を指定できますか。ここではHTMLよりもJSONを使用することをお勧めします。そうでなければ、IDを取得するための「信頼できる」方法があるかどうかはわかりませんが、それを見つけるためにjQueryを使用することができます。これがAjaxリクエストの成功関数に入れる例です。
success: function(html){
var item_info = $(html).find('.media-item-info').attr('id');
var info_array = item_info.split('-');
var attach_id = info_array[2];
}
繰り返しますが、 '.media-item-info'が毎回存在すると想定しているため、これが最も信頼性の高い方法であるとは言いませんが、コードの全体像がわからないため、これが重要です。私は行きます。