メディアギャラリーの既存の画像から、投稿のサムネイル(おすすめの画像)をJavaScriptで設定しようとしています。私は(画像が表示される前に更新をクリックする必要があるだろう)PHPベースのオプションも検討します。
いくつかの背景
私はカスタムの "イベント"ポストタイプで音楽会場のためのサイトを構築しています。ほとんどの場合、これらのイベントは独特ですが、繰り返し発生するアイデアがいくつかあります(たとえば、火曜日にマイクを開く夜など)。
バックエンドのadd new event
フォームフィールドに値を設定するためのドロップダウンをいくつかの「プリセット」と共に入れたいと思っていました。それをちょっとしたこと、そして私のカスタムメタフィールドでやるのは(私が思う)簡単なことではありません。難しいのは、(すでにメディアライブラリにアップロードされている)画像を機能的な画像ボックスにプログラム的に配置する方法です。
テンプレートの上で何かを動作させることはできますが、そのサムネイルがadd new/edit
ビューに表示されるのを見るのはいいでしょう。
ありがとうございます。
あなたはアクションでajax呼び出しをする必要があります: 'set-post-thumbnail'
期待値とnonceについてはadmin-ajax.php(3.3.2の1477行目)をチェックしてください。しかし一般的にはpost_id、attachment_id、nonceを送る必要があります。
Nonceは次のようになります。wp_create_nonce( "set_post_thumbnail- $ post_id");
管理者は次のようなことをします。
uploader.bind('FileUploaded', function(up, file, response) {
jQuery.post(ajaxurl, {
action:"set-post-thumbnail", post_id: post_id, thumbnail_id: response.response, _ajax_nonce: '<?php echo $ajax_nonce;?>' , cookie: encodeURIComponent(document.cookie)
}, function(str){
var win = window.dialogArguments || opener || parent || top;
if ( str == '0' ) {
alert( setPostThumbnailL10n.error );
} else {
jQuery('#postimagediv .inside').html(str);
jQuery('#postimagediv .inside #plupload-upload-ui').hide();
}
}
);
jQuery("#postimagediv .inside h2.uploading_message").remove();
});
Update_post_meta関数が添付ファイルを特色にすると思います。
update_post_meta($post_id, '_thumbnail_id', $attachment_id);
jquery画像コンボボックス に画像を表示し、ユーザーに[更新]をクリックさせてから、 set_post_metaまたはupdate_post_meta を使用して投稿に含めることができます。
追加のボタンを追加したくない場合は、この質問に対する解決策を あなたのカスタム投稿タイプのメタデータを保存する にすることができます。