WordPressのカスタム投稿一覧に項目を追加する方法

2014年06月10日(火)

Category: IT関係, こだわり, 磨く

私は、HP作成をいろいろとやっていますが、WEB製作のプロではありません。ブログを見て、一年に何回かプログラムについて質問メールあったりします。答えられる範囲でお答えしていますが、細かいプログラムに関しては、基本的にいろいろ調べて見よう見まねで独自にアレンジしているだけなのであまりツッコまないで下さい(笑)

今回も覚え書きとして残しておきます。
WordPressというものを使って自作しています。管理画面の一覧にアイキャッチなどを表示する方法は、投稿やページに関してはたくさんありますが、カスタム投稿を使用していて、そのカスタム投稿の一覧に表示させる方法は、完全な正解が見つからなかったので、悩んでいる人のために載せておきます。
ケースとしてよくあるだろう、アイキャッチの画像、カスタムフィールドで指定したデータ、カスタム分類のデータを一覧に表示させる方法を書いてみました。

カスタム投稿一覧に項目追加

以下はfunction.phpの中に書いて下さい。アイキャッチON前提です。

function add_posts_columns($columns) {		/* ←関数・変数は自由に */
	$columns['thumbnail'] = 'アイキャッチ';		/* ←アイキャッチ */
	$columns['stock'] = '在庫';		/* ←カスタムフィールドの値 */
	$columns['cat-bland'] = 'ブランド';		/* ←カスタム分類のスラッグ */
	$columns['postid'] = 'ID';		/* ←IDの値 */
	return $columns;
}
function add_posts_columns_list($column_name, $post_id) {		/* ←関数・変数は自由に */
	if ( 'thumbnail' == $column_name ) {
		$thumb = get_the_post_thumbnail($post_id, array(100,100), 'thumbnail');
		echo ( $thumb ) ? $thumb : '?';		/* ←アイキャッチの画像を取得して表示 */
	} elseif ( 'stock' == $column_name ) {
		echo get_post_meta($post_id, 'stock', true);		/* ←カスタムフィールドの値を取得して表示 */
	} elseif ( 'cat-bland' == $column_name ) {
		echo get_the_term_list($post_id, 'cat-bland');		/* ←カスタム分類の値を取得して表示 */
	} elseif ( 'postid' == $column_name ) {
		echo $post_id;
	}
}
add_filter( 'manage_edit-◯◯◯_columns', 'add_posts_columns' );		/* ←◯◯◯はカスタム投稿のスラッグ */
add_action( 'manage_◯◯◯_posts_custom_column', 'add_posts_columns_list', 10, 2 );		/* ←◯◯◯はカスタム投稿のスラッグ */

一覧で、情報漏れなどのチェックをするときに、必要な項目を登録しておいて、便宜表示させたりするととても便利です。