2026年5月28日

2026年5月28日

MetaBox(カスタムフィールド)の設定方法

はじめに

MetaBoxはWordPressでカスタムフィールドを作成し、管理するための強力なプラグインです。記事やページなどの投稿タイプに対して独自のデータを追加することができます。

症状・背景

このテーマが必要になる主な場面:

  • カスタム投稿タイプに追加情報を付与したい場合
  • サイト管理者が自由にカスタムフィールドを管理できるようにしたい場合
  • テーマのカスタマイズで既存のフィールドでは不足する機能が必要になった場合

手順・設定方法

ステップ1: MetaBoxプラグインをインストールする

# WordPress管理画面から「プラグイン」→「新規追加」ページを開き、「Meta Box」で検索します。
# 「Meta Box」プラグインを選択し、右下の「インストール」ボタンをクリックしてインストールを行います。

# プラグインがインストールされれば「アクティベート」ボタンを押して有効化してください。

ステップ2: メタボックスを作成する

# wp-content/plugins/meta-box/inc/fieldsディレクトリにあるフィールドの種類から適切なものを選びます。

// ここでは、テキストタイプのメタボックスを作成します。
$meta_boxes[] = array(
	'id' => 'post-text-meta',
	'title' => 'Post Text Meta Box',
	'post_types' => array( 'post', ),
	'context' => 'normal',
	'priority' => 'high',
	'autosave' => true,
	'fields' => array(
		array(
			'name' => 'テキストボックス',
			'id' => 'text_box',
			'type' => 'text',
			'desc' => 'ここにテキストを入力します。',
		),
	),
);

ステップ3: メタボックスを表示する

# アクションフックを使用してメタボックスを表示します。

add_action( 'admin_head', function() {
	if ( ! function_exists( 'get_post_type_object' ) )
		return;

	$post = get_post();
	if ( $post->post_type !== 'post' || ! current_user_can( 'edit_post', $post->ID ) )
		return;
	
	// メタボックスを表示します。
	do_action( 'rwmb_meta_boxes' );
} );

# これにより、上記で設定したメタボックスが投稿の編集画面に表示されます。

ステップ4: データを取得して使用する

# メタデータはwp_postmetaテーブルに保存されます。以下のようにして読み出します。

$meta_value = rwmb_get_the_value( 'text_box', '', get_the_ID() );
if ( $meta_value ) {
	echo '<p>テキストボックスの値:' . esc_html( $meta_value ) . '</p>';
}

注意事項

  • データが意図した通りに保存されない場合は、データベースのバックアップを取ってから再試行してください。
  • カスタムフィールドは通常の投稿フィールドとは異なるため、セキュリティ上注意が必要です。ユーザーテストや脆弱性スキャンを行うことをおすすめします。
  • 過剰なカスタムフィールドはパフォーマンスに悪影響を及ぼす可能性があるため、必要なものだけを作成するようにしましょう。

まとめ

1. MetaBoxのインストール: WordPress管理画面から「プラグイン」→「新規追加」ページでMeta Boxを検索し、インストールと有効化を行います。

2. メタボックスの作成: fields配列にフィールド情報を設定します。種類はテキストだけでなく複数あり、それぞれに対応するパラメータがあります。

3. メタボックスの表示: do_action( 'rwmb_meta_boxes' )を用いて、投稿編集画面でメタボックスを表示させることができます。

4. データの取得と使用: rwmb_get_the_value()関数を使って保存したカスタムフィールドの値を取り出します。これによりテンプレート内で動的に情報を扱うことが可能になります。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ