Custom Field Templateプラグインでの画像表示

「カスタムフィールドテンプレート」プラグインを利用すると予め入力項目が設定できるので便利です。

その設定の中で
[php]
[field1]
type = file
[/php]
という設定があります。

今回、ある案件で画像用として項目が欲しかったので上記の設定を行いました。
実際に画像をアップロードすると、[field1]の値には登録時のidが入るみたいなので利用する際は以下のようにすれば良いです。

[php]
// 画像のhtmlを出力
echo wp_get_attachment_image(post_custom(‘field1’));
[/php]

ただし、これだとalt属性やtitle属性にファイル名が入るので、そのあたりを自分で設定したい場合は以下のような関数をfunctions.phpなんかに書いておくと自由に設定できるかと。

[php]
function isp_get_attachment_image($attachment_id, $size=’thumbnail’, $title=”, $alt=”, $icon=false) {
$image = wp_get_attachment_image($attachment_id, $size, $icon);
if($title != ”) {
$image = preg_replace(array(‘/title=".+?"/’, ‘/alt=".+?"/’), array(‘title="’.$title.’"’, ‘alt="’.$title.’"’), $image);
}
if($alt != ”) {
$image = preg_replace(‘/alt=".*"/’, ‘alt="’.$alt.’"’, $image);
}

return $image;
}
[/php]

上記関数だとtitle属性のみがある場合はalt属性もtitleに合わせます。
使う場合は、

[php]
// フルサイズで画像の呼び出し
echo isp_get_attachment_image(post_custom(‘field1’), ‘full’, ‘タイトル属性’));

[/php]