WordPressのカスタマイズ方法やプラグインレビューを中心に、パソコン/動物/植物のことなどを紹介するホームページです

【WordPress】カスタムフィールドに入力した値を記事一覧に表示する方法

公開日:2015年8月30日 使い方など

WordPressで記事を作成する際に活躍するカスタムフィールド。カスタムフィールドに入力した値を呼び出して記事作成を単純化したり、カスタムフィールドの入力値を元に検索を行うようにしたり・・・などいろいろと便利な機能なのですが、もうちょっと違う方法がないかなと思ってたどり着いた使い方を紹介します。

たくさんの記事を書いていて、何かの修正を行ったかどうか、何かの文言を追加したかどうか、広告表示を修正したかどうかなどを記事一覧に表示して確認していきたい場合に役立つのが「カスタムフィールドに入力した値を記事一覧に表示する」方法です。

修正記事にカスタムフィールドを用意して、「○」などの印を入力しておけば、記事一覧に○かどうかの表示がされるので一目瞭然!!確認作業にうってつけの方法です。

WordPressでカスタムフィールドに入力した値を記事一覧に表示する方法

「外観」→「テーマの編集」から「テーマのための関数(functions.php)を開いて、
functions.phpの最終行にある「?>」の前に以下のコードを入れます


/* 投稿一覧にカスタムフィールドに入力した列追加 */
function manage_posts_columns($columns) {
	$columns['ここにカスタムフィールドのスラグ'] = "記事一覧に表示する名前";
	return $columns;
}
function add_column($column_name, $post_id) {
	if( $column_name == 'ここにカスタムフィールドのスラグ' ) {
		$stitle = get_post_meta($post_id, 'ここにカスタムフィールドのスラグ', true);
	}
	if ( isset($stitle) && $stitle ) {
		echo attribute_escape($stitle);
	} else {
		echo __('');
	}
}
add_filter( 'manage_posts_columns', 'manage_posts_columns' );
add_action( 'manage_posts_custom_column', 'add_column', 10, 2 );
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「'」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

コードを転載する場合には

ご自身のサイトで当ページで紹介しているコードを転載される場合には当ページへのリンクを入れていただきますようお願いいたします


上記コードの中の

「ここにカスタムフィールドのスラグ」 3か所と

「記事一覧に表示する名前」の部分は自身のWordpressサイトで設定した値を入力します。

また、

echo __(”);というコードの中の”の間に値がなかったときの表示(通常はnone)を指定するとカスタムフィールドに値がなかったときに「なし」と表示できますが、記事一覧の中の他のフィールドにも「なし」と表示されることがあるので私はブランク(表示なし)にしています。

複数のカスタムフィールドの値を表示させるには

上のコードの中の

$columns['ここにカスタムフィールドのスラグ'] = “記事一覧に表示する名前”;

if( $column_name == 'ここにカスタムフィールドのスラグ' ) {
$stitle = get_post_meta($post_id, 'ここにカスタムフィールドのスラグ', true);
}
を必要な分だけ追加します。

functions.phpへ安全にコードを追加するために

functions.phpはWordpressの動作に必要な関数というのを格納しておく大切なファイルです。このファイルの編集に失敗すると画面が真っ白になって操作できなくなります。変更前にバックアップを取っておけば不具合が起きたときに元に戻せますが、大事なときに限ってバックアップを取り忘れるものです。

そんな不具合を最小限にするためにWordpressには便利なプラグインがあります。

functions.phpにコードを入力して動作するプログラムの塊のことを「スニペット」といいますが、このプラグインはスニペットをfunctions.phpに挿入したりスニペット毎に管理できるプラグインです。

このプラグインには簡単な構文エラーチェック機能も備わっていますので、これを使うことでより安全にスニペットを追加することができます。

WordPressのカスタマイズ・不具合対応などご相談ください

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

【スポンサーリンク】