連載第103回
2014年10月4日
「Get Custom Field Values」プラグイン覚書

 前回では無事に、ブログのデータベースをAirたんのローカルへインポートできました。その際、各記事タイトルの左横にある丸アイコン(アイキャッチ画像)がリンク切れになっていたのは、当サイトでは開設当時からその箇所に「Get Custom Field Values」を使っているため。新しいFLFLテーマではそのプラグインを使用しない方法(一般的なアイキャッチ画像設定を使用)を取ることにしたため、リンク切れになっているというワケ。
 現在、丸アイコン表示やその他情報表示に「Get Custom Field Values」を使っているせいで無駄に複雑になっているタイトル周りは以下のようになっております。

記事タイトルまわり(抜粋)

<div id="header2">

<a href="<?php the_permalink() ?>">
<?php echo c2c_get_custom('post_icon', '<img width="100" height="100" align="left" alt="'.the_title('', '', false).'" src="/wp-content/uploads/', '.png">', 'blank'); ?></a>

<h6><?php echo c2c_get_custom('小見出し','','','制作途中','',''); ?><?php echo c2c_get_custom('映画タイトル','「','」','','',''); ?></h6>

<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>

<a href="http://twitter.com/share?url&amp;text=<?php if(!(is_single() && in_category(array( 6 )))) : ?>
<?php bloginfo('name'); ?>
<?php wp_title('>'); ?>
<?php endif; ?>
<?php if(is_single() && in_category(array( 6 ))) : ?>
<?php echo c2c_get_custom('映画タイトル','フリフリの映画百本「','」','','',''); ?>
<?php endif; ?>
" onclick="javascript:_gaq.push(['_trackEvent','outbound-article','http://twitter.com']);"><img src="<?php bloginfo('template_url'); ?>/tweetimage.png"  width="23" height="20" /></a>
</h1>

<h4><?php echo c2c_get_custom('監督','監督:','','','',''); ?>
<?php if(in_category(array( 6 ))) : ?>:<?php endif; ?>
<?php echo get_the_date('Y年m月d日 更新'); ?>
</h4>
</div>

 ちなみに、新しいFLFLテーマでのタイトル周りはこんな感じに、標準のアイキャッチ画像機能を使った事もあってシンプルです。

現在の記事タイトル周り

<section id="title">
	<a href="<?php the_permalink(); ?>"><img id="ICON" src="<?php echo post_icon (); ?> "></a>
	<h5><?php the_category(','); ?> ― 第<?php echo ps_number_cat( $post->post_type ); ?>回</h5>
	<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
	<h6><?php echo get_the_date(); ?><?php echo get_the_tag_list(' '); ?></h6>
</section>

 ただ、これは「Get Custom Field Values」が悪いのではなくて、例えば映画百本のように、このプラグインを用いてタイトル周りに映画タイトルや監督の名前など、ちょっとカスタマイズして付加情報を表示させるのにとても便利なのは確か。新しいFLFLテーマでも、映画百本のカテゴリーでは引き続きこの「Get Custom Field Values」をタイトル周りに利用したいから、これより見た目がちょっと複雑になる予定。

「Get Custom Field Values」プラグイン覚書

 そこで以前、アイキャッチ画像にまつわる記事でも取り上げたのですが、今回は改めてこの「Get Custom Field Values」について覚書を認めておきたい。というのも、今後FLFLテーマを調整していくのに必ずお世話になるからで、しかも毎度のように、すっかりこのプラグインの仕様を忘れきっているのです。

 最新版は3.5らしいのだけれど、相性の善し悪しが不明なので当サイトでは古い「バージョン 3.3.2」を未だ使っています。以下、説明はその古いバージョンのもの。まず、プラグインをインストールすると、ダッシュボードの記事編集画面で下図のような、ショートコードを生成するエリアが現れます。

 でも実はワタクシ、このショートコード生成機能をこれまで一度も使ったことが無いので、解説は無しです。なんだそれ。

 では「Get Custom Field Values」を使った基本的なテンプレートの簡単な書式説明を。WordPressループ内の情報を表示させたい箇所に「c2c_get_custom();」と書き、続けて()内に必要に応じてA・B・C・D・E・Fの値を入れます。そう、いつもこの内容や順序を忘れるのだ!

Get Custom Field Valuesパラメータ

<?php echo c2c_get_custom('A','B','C','D','E','F'); ?>

以下、()内の各パラメータ説明

A : カスタムフィールドの名前。分かり易いものを適当に付けます。
B : 表示する「値」の前に挿入するタグまたはテキスト。
C : 表示する「値」の後に挿入するタグまたはテキスト。
D : 「値」が入力されていなかった場合に表示するテキスト。指定が無い場合は何も表示されない。

基本は上記の4項目。Aは必須。B〜Dは必要に応じて。

E : 同じ「名前」が複数使われていた場合「値」と「値」の間に挿入するタグまたはテキスト。指定を省略すると「値」はひとつだけ取得されます。
F : 同じ「名前」が複数使われていた場合、最後の「値」とその前の「値」の間に挿入するタグまたはテキスト。Eのbetweenを省略した場合は機能しない。

僕のブログの場合、EとFが必要になる場面が無いので使った事がなく、うまく説明できません…。
使用しないのなら、テンプレートタグで,’E’,’F’の記述は省略可。

実際の入力作業画面

 最初は空っぽだけど、「名前」の項目に必要なものを入力すると、それらが蓄積してリスト化されます。次回からはそこから選ぶだけ。

 各「名前」の項目に適した「値」を入力。例えば下図のように入力すると、映画百本記事ページのようなタイトル周りになります。「post_icon」というのは丸アイコンのフィールドで、ファイル名を入力すると、その後に「.png」拡張子を付けて、タイトル左横に表示するようにしています。

 改めてタイトル周りのテンプレートから一部抜粋して見比べると、仕組みが分かり易いかも。()内パラメータのEとFにまつわる「”,」は省略しています。

記事タイトル周り(抜粋)

<h6>映画百本<?php echo c2c_get_custom('映画タイトル','「','」',''); ?></h6>
<h1>とある科学の…</h1>
<h4><?php echo c2c_get_custom('監督','監督:','',''); ?>:2001年05月02日 更新</h4>

 水色ラインで囲った部分がカスタムフィールドで入力した箇所です。

FLFLテーマで使用する場合

 それでは、近日引っ越し予定であるFLFLテーマの、タイトル周りの所定の場所に「Get Custom Field Values」のテンプレートタグを追記します。

新しいテーマでの記事タイトル周り

<section id="title">
	<a href="<?php the_permalink(); ?>"><img id="ICON" src="<?php echo post_icon (); ?> "></a>
	<h5><?php the_category(','); ?> ― 第<?php echo ps_number_cat( $post->post_type ); ?>回<?php echo c2c_get_custom('映画タイトル','「','」',''); ?></h5>
	<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
	<h6><?php echo c2c_get_custom('監督','監督:','',''); ?> <?php echo get_the_date(); ?><?php echo get_the_tag_list(' '); ?></h6>
</section>

 このように(↓)、無事移行できました。

 映画百本ではページ末に鑑賞日の情報も加えています。シングルページで、かつ映画百本カテゴリーID 6番の場合のみ表示するよう設定…あ、別にわざわざ条件分岐しなくても名前と値を入力しなければ表示されないのだから、if〜endifのタグは不要か。

映画感想文用タイトル周り

<p class="postinfo">
<?php if(is_single() && in_category(array( 6 ))) : ?>
<?php echo c2c_get_custom('鑑賞日','',' 感想文更新 : ','','',''); ?>
<?php endif; ?>
<?php echo get_the_date('Y-m-d'); ?> > <?php the_category(','); ?>
</p>

 映画百本ではこの他に、チラシ画像や一言メモなどもカスタムフィールドで構成しているのですが、外観デザインの変更および構成のシンプル化の方針により、今後これらについては直接記事内に記述することにします。

カスタムフィールド「名前」項目の削除「Delete Custom Fields」プラグイン

 デザインの変更やテーマの移行などで、これまで蓄積された「名前」項目の中に今後不要となるものが出てきます。例えばFLFLテーマに移行すると、上で掲載している名前リスト内にある「ヒトコトメモ」「小見出し」「チラシ画像」「post_icon」などは使わなくなります。使わなければ良いだけで、通常何ら問題はないのだけれど、常に表示されるのもアレだし、不要ならリストから削除したい…というのが人情。しかし、不要となった項目を削除する機能が、何とWordPressには標準装備されていないらしいのです。

 そういう時には、名前項目の削除をダッシュボード上から可能にするプラグイン、「Delete Custom Fields」があるそうな。

 しかし、今のところすぐに削除しなければいけないワケでもないので、移行後にもし使ってみたら、本記事に追記することにします。つづく。

やっと「Get Custom Field Values」プラグインについての記事が書けました。とても面倒だった印象があって気が重かったけど、書いてみれば簡単でした。