備忘録:WordPressの投稿一覧画面にカスタムフィールドの列を追加する

他のサイトで見つけたので、備忘録のためにメモ。

参考サイト
WordPress管理画面の投稿記事一覧をカスタマイズする

上のサイトはバージョン3.0.1での説明でしたが、私は3.1.3で試しました。

上みたいな感じで、カスタムフィールドで作った値を追加することができます。

今回は、カスタムフィールドの名前は「textfield3」値は「商品コード」で登録。

function.php に以下を追加。

/**
 * 投稿一覧に商品コード列追加
 */
function manage_posts_columns($columns) {
	$columns['textfield3'] = "商品コード";
	return $columns;
}
function add_column($column_name, $post_id) {
	if( $column_name == 'textfield3' ) {
		$stitle = get_post_meta($post_id, 'textfield3', true);
	}
	if ( isset($stitle) && $stitle ) {
		echo attribute_escape($stitle);
	} else {
		echo __('None');
	}
}
add_filter( 'manage_posts_columns', 'manage_posts_columns' );
add_action( 'manage_posts_custom_column', 'add_column', 10, 2 );

投稿一覧の右上の検索ボックスとかで追加した列を検索できたらいいんですけど、また時間のある時に試してみます。
とりあえず、便利だったのでφ(..)メモメモ。

<追記(2012年3月15日>
これは、「Search Everything」プラグインで簡単に解決しました。
いつも入れてるのに灯台もと暗し、教えてくださった方に感謝感謝です(^^)

今回は、「すべてのカテゴリー名と説明を検索」と「すべてのカスタムフィールドを検索」をYESに設定することで、
簡単に管理画面から検索できるようになりました。
これで、商品IDや商品コードから検索可能になり、クライアントさんも私も仕事がだいぶ楽になりそうです(´∀`)

<追記(2012年3月15日)>
上記設定した後、もうひとつカスタムフィールドの値を表示させたくなったので、2種類以上追加する場合を追記。

追加は、「textfield1」というカスタムフィールド名で、値を「商品ID」でやるものとします。

/**
 * 投稿一覧に商品コード列と商品ID列追加
 */
function manage_posts_columns($columns) {
	$columns['textfield3'] = "商品コード";
	$columns['textfield1'] = "商品ID";
	return $columns;
}
function add_column($column_name, $post_id) {
	if( $column_name == 'textfield3' ) {
		$stitle = get_post_meta($post_id, 'textfield3', true);
	}
	if( $column_name == 'textfield1' ) {
		$stitle = get_post_meta($post_id, 'textfield1', true);
	}
	if ( isset($stitle) && $stitle ) {
		echo attribute_escape($stitle);
	} else {
		echo __('None');
	}
}
add_filter( 'manage_posts_columns', 'manage_posts_columns' );
add_action( 'manage_posts_custom_column', 'add_column', 10, 2 );

上の一つの場合と違う箇所を見つけていけば、複数増やす場合でも大丈夫かと。

何回か、syntaxエラー出しちゃったので、必ずバックアップしてから作業してくださいませ。


Categories:


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です