投稿一覧画面の表示項目をカスタマイズ : WordPress

Pocket

一覧画面の表示項目は追加及び削除を行える[1]。本記事は一覧画面のカスタマイズ(追加・削除)方法をまとめる。

表示列の削除

表示項目の削除は簡単なので追加の前に削除の方法をまとめる。

投稿(post)

/*
 * 投稿一覧の作成者を削除
 */
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] ⇒ 日付

固定ページ(page)

作成者の列を削除するコートは下記のようになる。

/*
 * 固定ページ一覧の作成者を削除
 */
function custom_columns ($columns) {
    unset($columns['author']);
    return $columns;
}
add_filter( 'manage_pages_columns', 'custom_columns' );

追加

一覧画面に表示列を追加する方法をまとめる。

投稿(post)

投稿タイプpostの一覧画面に投稿IDを表示するコードは下記のようになる。

<?php
function add_post_columns_name($columns) {
	$columns&#91;'postID'&#93; = "投稿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);
&#91;/php&#93;
<p>
manage_posts_custom_columnの第4引数の2はコールバック関数(add_column)の引数の数を指定する。
</p>

<h3>固定ページ(page)</h3>
<p>
	固定ページ (page) の場合もpostの場合とほぼ同じ方法で列を追加できる。<br />
	manage_posts_columns &rArr; manage_pages_columns<br />
	manage_posts_custom_column &rArr; manage_pages_custom_column となる。
</p>
<p>投稿スラッグを表示するコードは下記のようになる。</p>
[php]
<?php
function add_page_columns_name($columns) {
	$columns&#91;'slug'&#93; = "スラッグ";
	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("/<&#91;^>]+>(.+)<\/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] 表示する項目はオプションでもカスタマイズできる。本記事ではフックを使ったカスタマイズを行う。

コメント

Trackbacks

  1. […] Shared 投稿一覧画面の表示項目をカスタマイズ : WordPress | FindxFine -Web制作に関するメモ-. […]

    ピンバックbyWeekly Digest for June 1st | BiscuitJam Blog — 2012-06-01 @ 10:54 午前


コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。