カスタムフィールド(メタ情報)の基礎


投稿に補助情報(サブタイトル、発表日、外部リンクなど)を付与するためのカスタムフィールド実装

ACF(Advanced Custom Fields)を使う方法
コアAPIのみで実装する方法

手順(コアAPI)

  1. add_meta_box で管理画面に入力パネルを追加。
  2. save_post フックで入力値を検証・保存(nonce と current_user_can を使う)。
  3. front-end で get_post_meta を使って表示。
add_action('add_meta_boxes', function(){
  add_meta_box('lead_meta','リード文','render_lead_meta','post','normal','default');
});
function render_lead_meta($post){
  wp_nonce_field('save_lead_meta','lead_meta_nonce');
  $val = get_post_meta($post->ID,'_lead',true);
  echo '<textarea name="lead_meta" style="width:100%;">'.esc_textarea($val).'</textarea>';
}
add_action('save_post', function($post_id){
  if(!isset($_POST['lead_meta_nonce']) || !wp_verify_nonce($_POST['lead_meta_nonce'],'save_lead_meta')) return;
  if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
  update_post_meta($post_id,'_lead',sanitize_textarea_field($_POST['lead_meta']));
});

ACF使う利点
あんまり使いこなせてないけど管理UIが豊富で結構いじれる
フィールドタイプ(画像、リレーション、繰り返し)が簡単に扱える。

やることメモ
投稿に「リード文」フィールドを追加し、single.php で表示する
ACF を使うならフィールドグループを作成して実装

コメント

タイトルとURLをコピーしました