【ショートコードを使う方法がおすすめです】WordPressのカスタムフィールドテンプレートプラグインのショートコードで画像を出力する方法

私がよく使っているWordPressプラグインで「Custom Field Template(カスタムフィールドテンプレート)」があります。制作者が日本の方で、ドキュメントもかなり充実していますので、理解しやすい。扱いやすいです。

「このプラグインで何ができるか」などなど、使い方はこちらの記事「カスタムフィールドテンプレートを使ってAmazonアソシエイトを使ったKindle本の紹介コーナーを作成した備忘録 | InfinityScope」がとてもわかりやすいので、是非ともご参考ください。

出力には「ショートコード」が使えるのでおすすめです

ところで、このプラグインはショートコードが使えます。ショートコードを使えば、あらかじめhtmlコードをフォーマット登録しておいて、テンプレートファイルや投稿本文内に追記しておくと、ババッと出力してくれて、便利。

「ショートコード」はソースコードの見た目もスッキリするのでよいです

カスタムフィールドテンプレートで設定した値を出力させるには、テーマフォルダ内にあるテンプレートファイル(single.phpなど)に直接htmlなりPHPなり、コードを書いて出力させる方法があります。

この方法もアリだとは思いますが、また別の方法として、ショートコードを使うことで、テンプレートファイルや記事を編集する際の可読性(読み取りやすさ)も上がって、すっきりするなぁって私は個人的に思います。細かいことですけども・・・

「ショートコード」を使って画像を出力できるようにしたい

というわけで、ここからが本題でして「カスタムフィールドテンプレートを利用してショートコードで画像を表示したい」ことがありました。その際には、少し工夫をしないといけないことがありますので、下記にメモ書きしました。

カスタムフィールドテンプレートの値

例えば、カスタムフィールドテンプレート側で「image_1」という名前で画像ファイルのアップロードを可能にしておきます。

[image_1]
type = file

予め画像ファイルもアップロード済みだとして話を進めますね~。

ショートコード内に書く

ショートコード内で「image_1」の画像を表示する場合は、以下のように記述します。(※「PHPを使用する」にチェックを・・と思ったんですけど、チェック入れなくても動くな・・・なんだろ><)

<?php echo wp_get_attachment_image(post_custom('image_1'),'full'); ?>

やっていること

「post_custom」はカスタムフィールドの値を取得する関数なのですが、codexには何も書かれていないように見えます。。ちょっと詳細は不明です(最近公開されたWordPress3.7 RC1版でも関数が存在していますね)。関数についてはこちらに詳細が書いてありました(英文)。「post_custom」で画像ファイルのIDを取得して、テンプレートタグ「wp_get_attachment_image」の第1引数に設定。画像を出力させています。

まとめ

カスタムフィールドテンプレートはとても使い勝手がいいプラグインで、私は新しくサイトを作るとほぼ必ず入れています。また、WordPressで作ったサイトをお客さんに納品するのですが「今はhtmlとかPHPとか・・・わからないけど!後々は、自分で管理できるようになりたいんですよ」という要望が多いです。

いきなり「テーマフォルダ内のテンプレートファイルを触ればいいよ」とは案内せずに、「じゃあ小さいところから、ちょっとずつやりましょうか~。まずは、カスタムフィールドテンプレートでショートコードを作ってみましょうよ」みたいな方向で私は教えていたりします。

お客さんに対する操作教育にも一役買ってくれるので、私はこのプラグインはとても気に入っています。おすすめ!そして、今回ご紹介した「ショートコードを使う方法」についても、とても助かる機能なので、おすすめです!

著者:bouya Imamura