管理画面でカスタムフィールドの一覧に追加した項目を表示する
Custom Post Type UIプラグインと Advanced Custom Fieldsプラグインを入れると、独自の Postタイプを追加でき、そのPostタイプにカスタムフィールドを追加できる。
投稿一覧には「タイトル、作成者、カテゴリー、タグ、、日時」、固定ページには「タイトル、作成者、、日時」が表示されているが、追加した Postタイプの一覧には、カスタムフィールドを追加しても「タイトル、日時」しか表示されない。
一覧に項目を追加するには function.php を修正する。
外観>テーマの編集>function.php の最後辺りに以下のコードを追加する。
Postタイプ “shop” に、”prefectures”, “address” というカスタムフィールドを追加したという想定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
/** * カスタム投稿タイプ一覧にカラム表示 */ function manage_posts_columns($columns) { $columns = [ 'title' => '店舗名', /* 表示する項目名 */ 'prefectures' => '都道府県', 'address' => '住所', ]; return $columns; } function add_column($column_name, $post_id) { if (in_array($column_name, ['title', 'prefectures', 'address', 'dispensary'])) { $stitle = get_post_meta($post_id, $column_name, true); } if (isset($stitle) && $stitle) { echo attribute_escape($stitle); } else { echo __('None'); /* 設定されていなければ何も表示しない */ } } add_filter('manage_shop_posts_columns', 'manage_posts_columns'); add_action('manage_shop_posts_custom_column', 'add_column', 10, 2); |
add_filter, add_action の Hook の指定には manage_Postタイプ_posts_ … の様に指定する。
複数のPostタイプを使う場合は、Hook する関数名が重複しない様注意!