Wordpressのカスタムフィールド

 WPのカスタムフィールドを使ってみました。結論から先に言うと、Blog色が強い分、カスタムフィールド機能はかなり貧弱な印象を受けました。もうちょっと便利にしてくれてもいいのに、と思いつつWPでBlog書いてるだけの私には便利になっても使い道がないわけで。

 ちょっと備忘録的な記述になりますがご容赦を。

 カスタムフィールドの入力は投稿画面のカスタムフィールド欄から、名前(key)と値(value)をセットで入力するテキストボックス×2の、単純なインターフェースです。

 カスタムフィールドに入れた値の出力については、例えば

<?php the_meta(); ?>

 と入力すると

<ul class='post-meta'>
<li><span class='post-meta-key'>KEY01_NAME: </span> KEY01_VALUE</li>
<li><span class='post-meta-key'>KEY02_NAME: </span> KEY02_VALUE</li>
</ul>

 ってな感じでKEYとVALUEがリストで片っ端から出力されます。いくらなんでも大味すぎて使い道がなさそうな関数ですね。任意でKEYを選んで、出力されたVALUEを加工する方法もあります。

カスタムフィールドの値を取り出す関数

get_post_meta($post_id, $key, $single);

 こうすると、指定したエントリーにヒモづけられた、任意のキーの値を取り出します。最後の$singleだけはbooleanで、trueなら一行目だけ、falseなら配列として値を返してくれます。WPのカスタムフィールドのKEYには複数の値を突っ込むことができるので、複数突っ込んでそれをループさせたりして使いたい場合は配列として格納させれば良い感じです。

<?php
echo "<h3>".get_post_meta($post->ID,'キーの名前',TRUE)."</h3>";
?>

 こう書くと、「キーの名前」というKEYのひとつめの値を、H3としてはき出してくれます。なにげに日本語のキー名でもOKです。日本語のキー名もOKなのは一見は良さそうだけど、別に表示名とキー名を分離することは容易い話でもある。

 他に書いたパターンだと・・・

<a href="<?php echo get_post_meta($post->ID,'flickr_link',TRUE) ?>">
<img src="http://capture.heartrails.com/200x200/shadow/border?
<?php echo get_post_meta($post->ID,'flickr_link',TRUE) ?>" 
alt="<?php echo get_post_meta($post->ID,'flickr_title',TRUE) ?>">
</a>
<strong><?php echo get_post_meta($post->ID,'flickr_title',TRUE) ?></strong>

 flickrのタイトルとURLをカスタムフィールドとして入力して、それを使ってキャプションとサムネイル画像&Flickrへのリンクを生成している感じです。get_post_meta関数が何度も出てきて超うざいですね。記述を短くするには、最初に$variable = get_post_meta(以下略)、で変数に格納が必要です。

カスタムフィールドの入力UIを改善する

 Custom Field GUI Utility 1.1.0 - WordPress 2.7 でカスタムフィールドを便利に使うプラグイン - かたつむりくんのWWW

 詳細省いてしまいますが、これを使うと簡単なtxtベースのconfigでラジオボタンやプルダウンなど、テキストボックス以外のフォームパーツを利用した、カスタムフィールドの入力画面を作ることが出来ます。

参考にしたページ

 あと、カスタムフィールドとは関係ありませんが、久々のWP-Syntaxで使い方を忘れたので調べたら

 がバッチリ出てきて参考にさせて頂きました。出張オフィスのおひとだー!ありがとうございます。

オチは?

 ってことなんですが、とにかくヴェールとかループとか、バリデーターとか色々欲しくなるし、テンプレートの記述もPHP必須だわで、微妙さを感じるだけでした。具体的な情報発信したらきっと、まだダメなんですよね、そうですよね。

 赤いとこのは素晴らしいとだけ(´;ω;`)三倍じゃないよ

 実際、Wordpressにカスタムフィールドの機能が充実してる必要があるかって言われたNOですよね。プラグインが充実してるだけでも価値ありますし。次はMovable Typeも使ってみたいなぁ。