add_meta_box()


WordPress関数add_meta_box()は、投稿編集画面にカスタムメタボックスを追加するために使用されます。

シンタックス

add_meta_box( string $id, string $title, callable $callback, string|array $screen = null, string $context = 'advanced', string $priority = 'default', array $callback_args = null );

引数の説明:

  • $id (string) — メタボックスの一意の識別子。
  • $title (string) — メタボックスのタイトル。
  • $callback (callable) — メタボックスの内容を出力する関数。
  • $screen (string|array) — メタボックスを表示する画面(例:’post’, ‘page’)。
  • $context (string) — メタボックスの表示位置。値には’normal’, ‘side’, ‘advanced’が含まれる。
  • $priority (string) — メタボックスの優先順位。値には’high’, ‘core’, ‘default’, ‘low’が含まれる。
  • $callback_args (array) — コールバック関数に渡す追加の引数。

例1: 基本的なメタボックスの追加

投稿編集画面に「カスタム情報」メタボックスを追加します。

add_action('add_meta_boxes', function() {
    add_meta_box('custom_info', 'カスタム情報', function() {
        echo '<input type="text" name="custom_field" />';
    }, 'post');
});

例2: 特定の投稿タイプのみにメタボックスを追加

投稿タイプproductにのみメタボックスを追加します。

add_action('add_meta_boxes', function() {
    add_meta_box('product_info', '商品情報', function() {
        echo '<textarea name="product_description"></textarea>';
    }, 'product');
});

例3: メタボックスの表示位置をサイドバーに設定

メタボックスを編集画面のサイドバーに表示します。

add_action('add_meta_boxes', function() {
    add_meta_box('sidebar_box', 'サイドバー情報', function() {
        echo '<input type="checkbox" name="enable_option" /> オプションを有効化';
    }, 'post', 'side');
});

例4: 複数の画面にメタボックスを追加

投稿と固定ページの両方にメタボックスを追加します。

add_action('add_meta_boxes', function() {
    add_meta_box('shared_meta', '共有メタ情報', function() {
        echo '<input type="text" name="shared_field" />';
    }, ['post', 'page']);
});

例5: コールバック関数に引数を渡す

コールバック関数に追加のデータを渡して使用します。

add_action('add_meta_boxes', function() {
    add_meta_box('callback_args_box', '引数付きメタボックス', function($post, $metabox) {
        echo '<p>' . esc_html($metabox['args']['description']) . '</p>';
    }, 'post', 'normal', 'default', ['description' => 'これは引数で渡された説明です。']);
});

注意点:

  • メタボックスに保存するデータはsave_postフックを使って保存してください。
  • セキュリティのためにwp_nonce_field()を使用することを推奨します。

関連機能: