add_meta_box()
は、WordPress の投稿編集画面にカスタムメタボックス(追加の入力エリアやオプション)を追加するための関数です。
これを利用すると、投稿やカスタム投稿タイプの編集画面に独自の情報を入力する欄を作成できます。
例えば、カスタムフィールドの管理、商品情報の追加、SEO用の設定フィールドなど、用途に応じて自由にカスタマイズ可能です。
機能の説明
add_meta_box()
は、WordPress の管理画面の投稿編集画面に追加のカスタム入力欄を設置するための関数です。これにより、管理者や投稿者が記事ごとに追加情報を入力しやすくなります。
主な用途
- 投稿やカスタム投稿タイプにカスタムフィールドを追加
- 商品の価格やスペック情報などを入力できる欄を作成
- SEO設定やカスタム設定を管理しやすくする
- 記事の追加情報(例:関連リンクや著者情報など)を簡単に管理
シンプルなコード例
function custom_meta_box() {
add_meta_box(
'custom_meta', // メタボックスのID
'カスタム情報', // メタボックスのタイトル
'custom_meta_box_callback', // コールバック関数
'post', // 表示する投稿タイプ
'normal', // 表示位置
'high' // 優先度
);
}
add_action('add_meta_boxes', 'custom_meta_box');
'custom_meta'
:メタボックスの一意のID'カスタム情報'
:メタボックスのタイトル'custom_meta_box_callback'
:メタボックスの内容を表示するコールバック関数'post'
:このメタボックスを表示する投稿タイプ(カスタム投稿タイプにも対応可能)'normal'
:表示するエリア(side
ならサイドバーに表示)'high'
:優先度(low
にすると下の方に表示)
使い方の説明
メタボックスを追加するには、以下の手順で実装します。
上記の add_meta_box()
を add_action('add_meta_boxes', 'custom_meta_box');
でフックし、投稿編集画面にメタボックスを追加します。
メタボックスの中で入力欄を表示するコールバック関数を定義します。
function custom_meta_box_callback($post) {
$value = get_post_meta($post->ID, '_custom_meta_key', true);
echo '<label for="custom_meta_field">カスタムデータ:</label>';
echo '<input type="text" id="custom_meta_field" name="custom_meta_field" value="' . esc_attr($value) . '" />';
}
入力されたデータを保存する処理を追加します。
function save_custom_meta($post_id) {
if (array_key_exists('custom_meta_field', $_POST)) {
update_post_meta(
$post_id,
'_custom_meta_key',
sanitize_text_field($_POST['custom_meta_field'])
);
}
}
add_action('save_post', 'save_custom_meta');
一緒に使うことが多い関連タグ
get_post_meta()
カスタムメタデータを取得する際に使います。
$meta_value = get_post_meta(get_the_ID(), '_custom_meta_key', true);
echo $meta_value;
update_post_meta()
カスタムメタデータを更新するために使用します。
update_post_meta($post_id, '_custom_meta_key', '新しいデータ');
delete_post_meta()
不要になったメタデータを削除します。
delete_post_meta($post_id, '_custom_meta_key');
追加情報で取得したい場合
add_meta_box()
は、投稿編集画面に独自のメタデータ入力フィールドを追加するものですが、すでにあるメタデータを取得するには get_post_meta()
を使用します。
get_post_meta() の使用例
$meta_value = get_post_meta(get_the_ID(), '_custom_meta_key', true);
if ($meta_value) {
echo '入力されたデータ: ' . esc_html($meta_value);
}
この関数を使用すると、add_meta_box()
で登録されたメタデータをフロントエンドで表示できます。
想定されるトラブル
メタボックスが表示されない
メタボックスが投稿編集画面に表示されない。
解決方法
add_meta_boxes
フックを正しく使用しているか確認する- 指定した投稿タイプ(例:
post
)が正しいか確認する add_meta_box()
の ID が重複していないか確認する
メタデータが保存されない
入力フィールドに値を入れても保存されない。
解決方法
save_post
フックを使っているか確認する$_POST['custom_meta_field']
のデータが正しく送信されているか確認するupdate_post_meta()
の引数が正しいか確認する
Q&A
まとめ
add_meta_box()
は、WordPress の投稿編集画面にカスタムメタボックスを追加するための関数です。これにより、記事ごとに追加情報を簡単に管理できるようになります。
データの取得には get_post_meta()
、保存には update_post_meta()
を使います。
ただし、正しく表示されない場合は add_meta_boxes
フックが適切に適用されているか確認する必要があります。
コメント