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 );
上記コードの中の
「ここにカスタムフィールドのスラグ」 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に挿入したりスニペット毎に管理できるプラグインです。
このプラグインには簡単な構文エラーチェック機能も備わっていますので、これを使うことでより安全にスニペットを追加することができます。