前回、WordPressの便利機能 カスタムフィールドを使ってみよう! - 基本編 -という記事をかいたのですが、これに関連して今日は、この値を投稿一覧の画面に表示させてみた備忘録です。
投稿一覧カラムってなに??
管理画面の投稿記事や固定ページのページ一覧では「タイトル」「日時」「カテゴリ」などのカラムがデフォルトで表示されています。新たにカラムを追加表示したりもできます。

ということで、このカスタムフィールドの内容をそれぞれの投稿タイプで見やすくカスタマイズ。
通常の投稿一覧
通常の投稿一覧画面にカスタムフィールドの内容を表示させる方法です。
カスタムフィールドの値を投稿一覧カラムに表示させる
カスタムフィールドは、投稿の編集画面にいかないと中身を見ることができないので、これを投稿画面で表示させると一目で見ることができるのでいろいろと捗りますね。
今回は、カスタムフィールドの名前は「Goods」、値は「商品コード」で登録しておきます。
- 名前・・・Goods
- 値・・・商品コード
functions.phpに以下を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/** * 投稿一覧に商品コード列追加 */ function manage_posts_columns($columns) { $columns['Goods'] = "商品コード"; return $columns; } function add_column($column_name, $post_id) { if( $column_name == 'Goods' ) { $stitle = get_post_meta($post_id, 'Goods', true); } if ( isset($stitle) && $stitle ) { echo attribute_escape($stitle); } else { echo __('None'); } } add_filter( 'manage_posts_columns', 'manage_posts_columns' ); add_action( 'manage_posts_custom_column', 'add_column', 10, 2 ); |
カスタムフィールドの値を複数表示させる
2つのカスタムフィールドの内容を表示させる方法です。
カスタムフィールドの名前は「Goods」、「Area」値は「商品コード」、「産地」で登録しておきます。
1つ目
- 名前・・・Goods
- 値・・・商品コード
2つ目
- 名前・・・Area
- 値・・・産地
functions.phpに以下を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/** * 投稿一覧に商品コード列追加 */ function manage_posts_columns($columns) { $columns['Goods'] = "商品コード"; $columns['Area'] = "産地"; return $columns; } function add_column($column_name, $post_id) { if( $column_name == 'Goods' ) { $stitle = get_post_meta($post_id, 'Goods', true); } if( $column_name == 'Area' ) { $stitle = get_post_meta($post_id, 'Area', true); } if ( isset($stitle) && $stitle ) { echo attribute_escape($stitle); } else { echo __('None'); } } add_filter( 'manage_posts_columns', 'manage_posts_columns' ); add_action( 'manage_posts_custom_column', 'add_column', 10, 2 ); |
固定ページの投稿一覧
固定ページの投稿一覧画面にカスタムフィールドの内容を表示させる方法です。
カスタムフィールドの名前は「Goods」、値は「商品コード」で登録しておきます。
- 名前・・・Goods
- 値・・・商品コード
functions.phpに以下を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/** * 投稿一覧に商品コード列追加 */ function add_page_columns_name($columns) { $columns['Goods'] = "商品コード"; return $columns; } function add_page_column($column_name, $post_id) { if( $column_name == 'Goods' ) { $post = get_post($post_id); $stitle = get_post_meta($post_id, 'Goods', true); echo attribute_escape($stitle); } if ( isset($stitle) && $stitle ) { echo attribute_escape($stitle); } else { echo __('None'); } } add_filter( 'manage_pages_columns', 'add_page_columns_name'); add_action( 'manage_pages_custom_column', 'add_page_column', 10, 2); |
カスタム投稿タイプの投稿一覧
カスタム投稿タイプでは、supports
にcustom-fields
がないと表示されませんので、まずはカスタムフィールドを追加します。
1 2 3 4 5 6 7 |
'supports' => array( 'title', 'editor', 'comments', 'thumbnail', 'slug', 'custom-fields'), |
カスタム投稿タイプ「Event」を作成。
カスタム分類は「Goods」、値は「商品コード」で登録しておきます。
- カスタム投稿タイプ・・・Event
- 名前・・・Goods
- 値・・・商品コード
functions.phpに以下を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
/** * カスタム投稿タイプ一覧に商品コード列追加 */ function manage_posts_columns($columns) { $columns['Goods'] = "商品コード"; return $columns; } function add_column($column_name, $post_id) { if( $column_name == 'Goods' ) { $stitle = get_post_meta($post_id, 'Goods', true); } if ( isset($stitle) && $stitle ) { echo attribute_escape($stitle); } else { echo __('None'); } } add_filter( 'manage_edit-Event_columns', 'manage_posts_columns' ); add_action( 'manage_posts_custom_column', 'add_column', 10, 2 ); |
以上、投稿一覧画面に表示させておく方法でした。
さいごに
あと、これを表示しておくと便利かも。。と思うモノを。
どれも通常投稿で表示します。アイキャッチやIDなどは、あるとアイキャッチ画像の貼り忘れなども防げるので重宝します。
IDを投稿一覧カラムに表示
functions.phpに以下を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
add_filter('manage_posts_columns', 'posts_columns_id', 5); add_action('manage_posts_custom_column', 'posts_custom_id_columns', 5, 2); add_filter('manage_pages_columns', 'posts_columns_id', 5); add_action('manage_pages_custom_column', 'posts_custom_id_columns', 5, 2); function posts_columns_id($defaults){ $defaults['wps_post_id'] = __('ID'); return $defaults; } function posts_custom_id_columns($column_name, $id){ if($column_name === 'wps_post_id'){ echo $id; } } |
スラッグを投稿一覧カラムに表示
functions.phpに以下を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function add_posts_columns_name($columns) { $columns['slug'] = "スラッグ"; return $columns; } function add_posts_column($column_name, $post_id) { if( $column_name == 'slug' ) { $post = get_post($post_id); $slug = $post->post_name; echo attribute_escape($slug); } } add_filter( 'manage_posts_columns', 'add_posts_columns_name'); add_action( 'manage_posts_custom_column', 'add_posts_column', 10, 2); |
サムネイルを投稿一覧カラムに表示
サムネイルの大きさを変更したい場合は、7行目にあるarray(75,75)の値を変更してください。
functions.phpに以下を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
function manage_posts_columns($columns) { $columns['thumbnail'] = __('Thumbnail'); return $columns; } function add_column($column_name, $post_id) { if ( 'thumbnail' == $column_name) { $thum = get_the_post_thumbnail($post_id, array(75,75), 'thumbnail'); } if ( isset($thum) && $thum ) { echo $thum; } else { echo __('None'); } } add_filter( 'manage_posts_columns', 'manage_posts_columns' ); add_action( 'manage_posts_custom_column', 'add_column', 10, 2 ); |
Pingback: WordPressで外注ライターを管理する方法()