一覧画面の表示項目は追加及び削除を行える[1]。本記事は一覧画面のカスタマイズ(追加・削除)方法をまとめる。
表示項目の削除は簡単なので追加の前に削除の方法をまとめる。
/*
* 投稿一覧の作成者を削除
*/
function custom_columns ($columns) {
unset($columns['author']);
return $columns;
}
add_filter( 'manage_posts_columns', 'custom_columns' );
デフォルトでは下記の項目をカスタマイズできる。
$columns[‘cb’] ⇒ チェックボックス
$columns[‘title’] ⇒ タイトル
$columns[‘author’] ⇒ 作成者
$columns[categories] ⇒ カテゴリー
$columns[tags] ⇒ タグ
$columns[comments] ⇒ コメント
$columns[date] ⇒ 日付
作成者の列を削除するコートは下記のようになる。
/*
* 固定ページ一覧の作成者を削除
*/
function custom_columns ($columns) {
unset($columns['author']);
return $columns;
}
add_filter( 'manage_pages_columns', 'custom_columns' );
一覧画面に表示列を追加する方法をまとめる。
投稿タイプpostの一覧画面に投稿IDを表示するコードは下記のようになる。
<?php
function add_post_columns_name($columns) {
$columns['postID'] = "投稿ID";
return $columns;
}
function add_column($column_name, $post_id) {
if( $column_name == 'postID' ) {
echo attribute_escape($post_id);
}
}
add_filter( 'manage_posts_columns', 'add_post_columns_name' );
add_action( 'manage_posts_custom_column', 'add_column', 10, 2);
[/php]
<p>
manage_posts_custom_columnの第4引数の2はコールバック関数(add_column)の引数の数を指定する。
</p>
<h3>固定ページ(page)</h3>
<p>
固定ページ (page) の場合もpostの場合とほぼ同じ方法で列を追加できる。<br />
manage_posts_columns ⇒ manage_pages_columns<br />
manage_posts_custom_column ⇒ manage_pages_custom_column となる。
</p>
<p>投稿スラッグを表示するコードは下記のようになる。</p>
[php]
<?php
function add_page_columns_name($columns) {
$columns['slug'] = "スラッグ";
return $columns;
}
function add_page_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_pages_columns', 'add_page_columns_name');
add_action( 'manage_pages_custom_column', 'add_page_column', 10, 2);
カスタム投稿タイプ(Custom Post Type)はmanage_posts_columnsの代わりにmanage_edit-●●●_columnsフィルターを使う。●●●はカスタム投稿タイプ。
This filter works fine, but it will add a new custom column to all post manage page, including for custom post type. So, to specify the manage page for a custom post type, we use another filter: manage_edit-customposttype_columns, where customposttype is the slug of you custom post type. For example, if you want to add a new column to manage page for post type film, just use:
» Add Custom Column To WordPress Post Manage Page – Deluxe Blog Tips
カスタム投稿タイプ(例:cpt_gallery)の一覧画面にカスタムタクソノミー(例:ct_gallery_staff)を表示する。
// 一覧画面にカスタムタクソノミーを追加
function manage_cpt_columns ($columns) {
$columns['staff'] = 'スタッフ';
return $columns;
}
function add_cpt_column ($column, $post_id) {
if ('staff' == $column) {
$value = get_the_term_list($post_id, 'ct_gallery_staff'); // get_the_term_listの戻り値はHTMLの形式<a href="...">ターム名</a>
$value = preg_replace("/<[^>]+>(.+)<\/a>/","$1",$value); // ターム名を取り出す。
echo attribute_escape($value);
}
}
add_filter('manage_edit-cpt_gallery_columns', 'manage_cpt_columns');
add_action('manage_posts_custom_column', 'add_cpt_column', 10, 2);
get_the_term_list はHTML文字列を返す。preg_replaceを使いターム名だけを取り出す。
» get_the_term_list – Main Page – WordPress Codex 日本語版
» Plugin API/Filter Reference « WordPress Codex
» Plugin API/Action Reference « WordPress Codex
[1] 表示する項目はオプションでもカスタマイズできる。本記事ではフックを使ったカスタマイズを行う。
[…] Shared 投稿一覧画面の表示項目をカスタマイズ : WordPress | FindxFine -Web制作に関するメモ-. […]
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。