web-dev-qa-db-ja.com

JavaScriptを使ってプログラムで(adminで)おすすめの画像を設定しますか?

メディアギャラリーの既存の画像から、投稿のサムネイル(おすすめの画像)をJavaScriptで設定しようとしています。私は(画像が表示される前に更新をクリックする必要があるだろう)PHPベースのオプションも検討します。

いくつかの背景

私はカスタムの "イベント"ポストタイプで音楽会場のためのサイトを構築しています。ほとんどの場合、これらのイベントは独特ですが、繰り返し発生するアイデアがいくつかあります(たとえば、火曜日にマイクを開く夜など)。

バックエンドのadd new eventフォームフィールドに値を設定するためのドロップダウンをいくつかの「プリセット」と共に入れたいと思っていました。それをちょっとしたこと、そして私のカスタムメタフィールドでやるのは(私が思う)簡単なことではありません。難しいのは、(すでにメディアライブラリにアップロードされている)画像を機能的な画像ボックスにプログラム的に配置する方法です。

テンプレートの上で何かを動作させることはできますが、そのサムネイルがadd new/editビューに表示されるのを見るのはいいでしょう。

ありがとうございます。

3
Zach Lysobey

あなたはアクションで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();

        });
3
MZAweb

Update_post_meta関数が添付ファイルを特色にすると思います。

update_post_meta($post_id, '_thumbnail_id', $attachment_id);
2
Albin Joseph

jquery画像コンボボックス に画像を表示し、ユーザーに[更新]をクリックさせてから、 set_post_metaまたはupdate_post_meta を使用して投稿に含めることができます。

追加のボタンを追加したくない場合は、この質問に対する解決策を あなたのカスタム投稿タイプのメタデータを保存する にすることができます。

2
fdsa