今回は、管理画面の投稿一覧にカスタムフィールドの項目を追加する方法をご紹介します。
完成形は、以下のようになります。
<目次>
管理画面の投稿一覧にカスタムフィールドの項目を追加する方法
『functions.php』に以下のコードを追加します。
function add_posts_columns($columns) {
$columns['cf'] = 'カスタムフィールド';
return $columns;
}
function custom_posts_column($column_name, $post_id) {
if ($column_name == 'cf') {
$cf_date = get_post_meta($post_id, 'カスタムフィールドのフィールド名', true);
echo ($cf_date) ? $cf_date : '-';
}
}
add_filter('manage_posts_columns', 'add_posts_columns');
add_action('manage_posts_custom_column', 'custom_posts_column', 10, 2);
【解説】管理画面の投稿一覧にカスタムフィールドの項目を追加する方法
コメントアウトにて解説を入れております。
function add_posts_columns($columns) {
// $columns['他と被らない名前'] = '任意の名前';
$columns['cf'] = 'カスタムフィールド';
return $columns;
}
function custom_posts_column($column_name, $post_id) {
// $column_name == '$columns['〇〇'] で指定した名前を入力'
if ($column_name == 'cf') {
// get_post_meta() でカスタムフィールド値の取得しています
// get_post_meta() の第2引数にカスタムフィールドのフィールド名を指定してください
$cf_date = get_post_meta($post_id, 'カスタムフィールドのフィールド名', true);
// 三項演算子
// カスタムフィールドに値があるかどうか ? ある場合 = カスタムフィールドの値を表示 : ない場合 = 『 - 』を表示
echo ($cf_date) ? $cf_date : '-';
}
}
add_filter('manage_posts_columns', 'add_posts_columns');
add_action('manage_posts_custom_column', 'custom_posts_column', 10, 2);
固定ページ・カスタム投稿の一覧にカスタムフィールドの項目を追加する方法
固定ページやカスタム投稿の一覧にカスタムフィールドの項目を追加したい場合は、『add_filter』と『add_action』の箇所を下記のコードに変更してください。
// 固定ページ
add_filter('manage_pages_columns', 'add_posts_columns');
add_action('manage_pages_custom_column', 'custom_posts_column', 10, 2);
// カスタム投稿
add_filter('manage_カスタム投稿のスラッグ名_posts_columns', 'add_posts_columns');
add_action('manage_カスタム投稿のスラッグ名_posts_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);
【応用編】管理画面の投稿一覧にカスタムフィールド・アイキャッチ画像・閲覧数(PV)の項目を追加する方法
先程までは、管理画面の投稿一覧にカスタムフィールドの項目のみ追加しましたが、応用編として、カスタムフィールド・アイキャッチ画像・閲覧数(PV)の項目を追加します。
『functions.php』に以下のコードを追加します。
function add_posts_columns($columns) {
$columns['thumbnail'] = 'アイキャッチ';
$columns['cf'] = 'カスタムフィールド';
$columns['post_views_count'] = 'Views';
return $columns;
}
function custom_posts_column($column_name, $post_id) {
if ('thumbnail' == $column_name) {
$thumbnail = get_the_post_thumbnail($post_id, array(80, 80), 'thumbnail');
echo ($thumbnail) ? $thumbnail : '';
} elseif ($column_name == 'cf') {
$cf_date = get_post_meta($post_id, 'number', true);
echo ($cf_date) ? $cf_date : '-';
} elseif ($column_name == 'post_views_count') {
$column_count = get_post_meta($post_id, 'post_views_count', true);
echo ($column_count) ? $column_count : '0';
}
}
add_filter('manage_posts_columns', 'add_posts_columns');
add_action('manage_posts_custom_column', 'custom_posts_column', 10, 2);
ちなみに、管理画面の投稿一覧にカラムを追加すると、項目数が多くなりゴチャゴチャしてくるため、右上の『表示オプション』より、不要な項目は非表示にしてあげてください。
今回は以上です。