WordPressの投稿一覧画面をカスタマイズして本文やサムネイルなどのカラムを追加する方法

WordPressの投稿一覧にサムネイルや本文の抜粋などを表示できたらもっと使いやすくなるのに・・・と思う人もいるかと思います。

今回はWordPressの投稿一覧画面をカスタマイズして本文の抜粋やサムネイルなどのカラムを追加する方法をご紹介します。

また、Advanced Custom Fieldsを使って追加した値も表示することが可能です。

 

必要スキルレベルはPHPを必要になってきます。

と言ってもサンプルコードを用意しますので、それを参考にすれば対応は可能です。

目次

投稿一覧画面にカラムを追加する手順

投稿の一覧や、自分で追加したカスタム投稿タイプの一覧に新たにカラムを追加する場合には function.php というPHPファイルを編集する必要があります。

function.php は、お使いのWordPressテーマのディレクトリ内にあります。

カラムを追加する

まず、何のカラムを追加するかを定義します。

引数の $columns には表示するカラムのリストが入っており、これに新たに表示するカラムを追加して戻り値として return で返す処理になります。

function manage_posttype_columns($columns) {
	$columns['column_name'] = "カラム名";
	return $columns;
}
add_filter( 'manage_edit-posttype_columns', 'manage_posttype_columns' );

3行目の $columns[‘column_name’] = “カラム名”; の column_name は追加するカラム名の英語名を入れます。

正確な英語である必要はないですが、なんのカラムか分かり、他のカラムと重複しないようにしてください。

カラム名 には実際に一覧に表示するカラム名を書きます。

 

関数名の manage_posttype_columns は別の名前でもいいですが、posttype部分をどのポストタイプの一覧に追加するか書き換えて同様の関数名を作成すると後で分かりやすいです。

例えば「投稿」の場合は投稿タイプが「post」になるので manage_post_columns() のようにします。

新着情報(news)というカスタム投稿を作成した場合は、 manage_news_columns() のようにしておけば後で分かりやすいですね?

 

そして最後の行の manage_edit-posttype_columns の、posttype は正確な投稿タイプに書き換えてください。

例えば「投稿」の場合は manage_edit-post_columns で、新着情報(news)の場合は manage_edit-news_columns になります。

この対応は必須になります。

カラムのコンテンツを追加する

次に、実際に表示する値を取得し出力する処理です。

値の取得には manage_posts_custom_column というアクションフックを使います。

これは、不明なカラムがあった場合に実行されるフックです。

自前でカラムを追加しているのでこれに当てはまりますね。

function add_posttype_column($column_name, $post_id) {
	if ($column_name == 'column_name') {
		$v = get_post_meta($post_id, 'meta_name', true);
	}
 
	if (isset($v) && $v) {
		echo attribute_escape($v);
	} else {
		echo __('None');
	}
}
add_action( 'manage_posts_custom_column', 'add_posttype_column', 10, 2 );

このフックはカスタム投稿タイプの指定は出来なくて、全ての不明なカラムの値を取得するときに実行されます。

なので2行目の「if( $column_name == ‘column_name’ ) {」のように引数のカラム名で分岐して、そのカラムに合った値を取得する処理を書きます。

 

get_post_meta($post_id, ‘meta_name’, true) は、カスタムフィールドの場合などに使います。

本文を取得する場合は、get_the_content() で取得できます。

 

サムネイル画像の取得には、get_the_post_thumbnail($post_id, ‘medium’) を使います。

get_the_post_thumbnail() を使うと<img>タグがついた上体で取得できますので、あとはそのまま出力すればOKです。

 

追加した関数名の posttype 部分はカスタム投稿タイプを設定してください。

まとめ

投稿や固定ページ、カスタム投稿の一覧画面にカラムを追加する方法。

まず、一覧のカラムの定義を追加する。

次に追加したカラムの値を取得するコードを追加する。

これだけですが、PHPを使えないと難しいかもしれません。

もし不明な点があればご質問ください。

この記事を書いた人

ライターのプロフィールが入ります。このライター情報を入れたくない場合は管理画面の ユーザー > あなたのプロフィールの「プロフィール情報」を未入力にすれば表示されません。逆に「プロフィール情報」を入力することでライター情報を表示できます。

コメント

コメントする

CAPTCHA


目次
閉じる