ファイルメタボックスを添付します
-
16-10-2019 - |
質問
誰もがたまたまメタボックスに配置できる単純な「添付/閲覧」ボタンを作成する方法を知っていますか?下部の[添付]ボタンを添付してクリックします。 [添付]をクリックした後、ポストメタボックスは選択したすべてのファイルで更新されます...
解決
ライトボックスを開く部分については、何かを閲覧してから、次のアクションで何かを実行します。WordPressはこれをすでにビルドしています。基本的には、画像を参照するときにポストエディターのように開く厚い箱です。ギャラリー。
あなたはすでにあなたが必要とするすべてのコードを見つけます の WordPress。あなたがする必要がある唯一のことは、かなり複雑なコードのチャンクを収集し、それを独自のプラグインにパッケージ化し、ニーズに合わせて変更することです。これらのコンポーネントはそれ自体であまり再利用できないため、これを簡単にすることができたAPIはありません。まあ、それは本当に真実ではありません、あなたは使用することができます tb_show()
厚手を表示するには 例.
しかし、全体として、これは些細なことではありません。あなたはおそらく採用しやすいものを探しているでしょう。知らない。私はかつてThickbox <->ポストエディター通信(必要なものにより複雑になる可能性があります)をいじりましたが、物事をすることを考えることがたくさんあります。しかし、あなたが説明するシナリオには、ポップアップの選択が行われた後に何かを更新するために太い箱を開いているページを信号することが必要です。
メタボックスの場合、十分なコードスニッペットを作成する方法を見つける必要があるので、そのためにすでにコードがあると確信しています。
他のヒント
https://github.com/jaredatch/custom-metaboxes-and-fields-for-wordpress
これらの人たちは、WP管理者のカスタムフィールドタイプのための素晴らしいライブラリを作成しました。私はあなたが探しているものをまさにそれを考えていると思います - それはイメージアップロードフィールドを些細なものにすることになります。
これにより、メタボックスは、細かい制御を備えたプログラムのポストタイプに対してデカールできます。
詳細のリクエストがありました。知識を複製するリスクがある場合、ドキュメントの例を次に示します(ファイル制御を使用するためのいくつかのMODを使用)。画像メタボックス:
function be_sample_metaboxes( $meta_boxes ) {
$prefix = '_cmb_'; // Prefix for all fields
$meta_boxes[] = array(
'id' => 'test_metabox',
'title' => 'Test Metabox',
'pages' => array('page'), // post type
'context' => 'normal',
'priority' => 'high',
'show_names' => true, // Show field names on the left
'fields' => array(
array(
'name' => 'Test Text',
'desc' => 'field description (optional)',
'id' => $prefix . 'test_image',
'type' => 'file'
),
),
);
return $meta_boxes;
}
add_filter( 'cmb_meta_boxes', 'be_sample_metaboxes' );
add_action( 'init', 'be_initialize_cmb_meta_boxes', 9999 );
function be_initialize_cmb_meta_boxes() {
if ( !class_exists( 'cmb_Meta_Box' ) ) {
require_once( 'lib/metabox/init.php' );
}
}
私がしていることは、これをPostType_my_post_type_name.phpに置くことです。ここで投稿タイプを作成しています。 MetaBoxライブラリを必要とした後、functions.phpファイルからこれを必要とします。