管理画面内の「投稿一覧」の項目はデフォルトだと
・一括編集用のチェックボックス
・タイトル
・作成者
・カテゴリー
・タグ
・コメント
・投稿日時
という順番で並んでいますが、「manage_posts_columns」というフィルターフックを使用することで、この表示内容を追加したり表示させなくしたり順番を変えたりすることができます。
追加する方法はググればすぐに見つかりますが、削除や並び替える方法があまり出て来なかったので試してみました。
ADs
カスタムフィールドやアイキャッチ画像を追加で表示させるという使い方がよく見られます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//カラムを追加する function my_columns($columns) { $columns['customfield'] = "カスタムフィールド"; return $columns; } //カラムの表示内容を定義 //追加したカラムに「metaname」というカスタムフィールドの内容を表示させる function add_column($column_name, $post_id) { if( $column_name == 'customfield' ) { $stitle = get_post_meta($post_id, 'metaname', true); } if ( isset($stitle) && $stitle ) { echo attribute_escape($stitle); } else { echo __('None'); } } add_filter( 'manage_posts_columns', 'my_columns' ); add_action( 'manage_posts_custom_column', 'add_column', 10, 2 ); |
私のWordPressの使い方の場合、デフォルトの表示内容の中で「作成者」は不要なことが多いです(複数人で運営するサイトを構築することが滅多にないため)。
上記の「manage_posts_columns」というフィルターフックの返り値である「$columns」の内容を
var_dumpで見てみると、以下のようになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
["cb"]=> string(25) "<input type="checkbox" />" ["title"]=> string(12) "タイトル" ["author"]=> string(9) "作成者" ["categories"]=> string(15) "カテゴリー" ["tags"]=> string(6) "タグ" ["comments"]=> string(86) "<span class="vers"><div title="コメント" class="comment-grey-bubble"></div></span>" ["date"]=> string(6) "日時" |
見ての通りですが、キーが各カラム固有のIDのようなもの、値が見出しとして表示させるタイトルとなっています。
配列からキー、値を削除してやれば投稿一覧の項目に表示されなくなります。
以下をfunctions.phpに追加します。
1 2 3 4 5 6 7 8 |
function delete_column($columns) { unset($columns['title'],$columns['author'],$columns['categories']); //....のように消したいキーをunset return $columns; } add_filter( 'manage_posts_columns', 'delete_column'); |
順番を変更したい場合も、「manage_posts_columns」フックで行えます。
表示順は上記の「$columns」配列の順番通りに左から並んでますので、この$columnsを自力で定義してやれば好きなように変更することができます。
たとえば、日付→作成者→チェックボックス→タイトルの順に表示するようにしたい場合は以下のようにfunctions.phpに記述します(どう考えても使いにくいですが)。
1 2 3 4 5 6 7 8 9 10 |
function sort_column($columns){ $columns = array( 'date' => '日時', 'author' => '作成者', 'cb' => '<input type="checkbox" />', 'title' => 'タイトル', ); return $columns; } add_filter( 'manage_posts_columns', 'sort_column'); |
ADs
コメントはまだありません。