[WordPress]カスタム投稿一覧にカスタムフィールドの値を簡単に表示する関数

カスタム投稿一覧の「カテゴリ」「タグ」などと一緒にカスタムフィールドの値を一覧で表示します。
functions.phpに一つ一つ記載していく方法もありますが、カスタム投稿や項目が多いと記載が長くわかりにくくなってしまうため、簡単に設定できる関数を作成しました。

関数

function add_custom_post_columns($cp_name, $cf_array)
{
  add_filter('manage_' . $cp_name . '_posts_columns', function ($columns) use ($cf_array) {
    foreach ($cf_array as $key => $value) {
      $columns[$key] = $value;
    }
    return $columns;
  });
  add_action('manage_' . $cp_name . '_posts_custom_column', function ($column_name, $post_id) use ($cf_array) {
    foreach (array_keys($cf_array) as $key) {
      if ($column_name == $key) {
        $cf_value = get_post_meta($post_id, $key, true);
        if ($cf_value) {
          echo $cf_value;
        } else {
          echo '-';
        }
      }
    }
  }, 10, 2);
}

呼び出し

add_custom_post_columns('カスタム投稿名', array(
  'フィールド名' => '表示名',
  'フィールド名' => '表示名'
));
タイトルとURLをコピーしました