WordPress:管理画面の一覧ページにカスタムフィールドの値を表示する項目を追加する方法

WordPress:管理画面の一覧ページにカスタムフィールドの値を表示する項目を追加する方法

WordPressで管理画面のページ一覧にカスタムフィールドの値を表示する項目を追加する方法です。

例として「cf_example」という名前のカスタムフィールドの値を「投稿」の一覧画面で表示したい場合は、functions.phpに下記のように記述します。

functions.php

function add_posts_columns( $columns ) {
  $columns['example'] = 'サンプル';
  return $columns;
}
function custom_posts_column( $column_name, $post_id ) {
  if ( $column_name == 'example' ) {
    $cf_example = get_post_meta( $post_id , 'cf_example' , true );
    echo ( $cf_example ) ? $cf_example : '-';
  }
}
add_filter( 'manage_posts_columns', 'add_posts_columns' );
add_action( 'manage_posts_custom_column', 'custom_posts_column', 10, 2 );

上記を記述することで一覧ページの一番右のカラムに「サンプル」という項目が追加され、それぞれの記事で「cf_example」という名前のカスタムフィールドに値があれば内容が表示されて、値がない場合は「-」と表示されているのが確認できると思います。
カスタムフィールド値の取得にはget_post_meta()を使用し、第2引数に任意の名前($key)を指定してください。

ちなみに、add_filter()add_action()の一部を変更することで投稿だけでなく固定ページやカスタム投稿の一覧にも追加することができます。
上のコードでpostsとなっていたのを、下記のように固定ページではpagesに、カスタム投稿の場合は${post_type}_postsにそれぞれ変更することで追加できます。

// 固定ページ
add_filter( 'manage_pages_columns', 'add_posts_columns' );
add_action( 'manage_pages_custom_column', 'custom_posts_column', 10, 2 );

// カスタム投稿(「news」というカスタム投稿の場合)
add_filter( 'manage_news_posts_columns', 'add_posts_columns' );
add_action( 'manage_news_posts_custom_column', 'custom_posts_column', 10, 2 );

WordPressで管理画面に関するその他のカスタマイズは以下にまとめているので、興味ある方はこちらもご覧ください。

Close the search window,
please press close button or esc key.