[wordpress]任意のディレクトリーに画像があれば表示する

カスタムフィールドの値を利用して、任意のディレクトリーに画像があれば表示する
(wordpress本体をwpディレクトリーに設置している場合)

functions.phpに記述

[php]
function item_photo_function() {

//ポストタイトル取得
$parent_title = get_the_title( $post->post_parent );

//画像を保存しているディレクトリー名をカスタムフィールドにセット
$img_id = post_custom(‘img_id’);
$dir = post_custom(‘dir’);

//ディレクトリーが存在するか調べる */
if (is_dir(‘wp/’.$img_id.’/’.$dir)) {
echo ”;
}
else {
echo ‘現在表示できません’;
}

//001.jpg~100.jpgまでループ
for($num = 1; $num <= 100; $num++) {
$num=sprintf ("%03d", $num);

//ファイルのURL
$url = ‘wp/’.$img_id.’/’.$dir.’/’.$img_id.’_’.$num.’.jpg’;

//ファイルが存在するか調べる
if (file_exists($url)) {

//ファイルが読み込み可能か調べる
if (is_readable($url)) {
echo ”;
}
else {
echo ‘ファイルの読み込みができません。<br>’;
}

//title,altをポストタイトルにする場合
echo ‘<img src="/’.$url.’" title="’.$parent_title. ‘" alt="’.$parent_title. ‘">’;
}
else {
echo ”;
}
}
}

[/php]

テンプレート(ループ内)の任意の位置に記述

[php]

<?php item_photo_function(); ?>

[/php]

get_pageを利用して情報を得る

ページIDとディレクトリー名を同じにすれば、カスタムフィールドの値なしでも可能

[php]

$page = get_page(get_the_ID());

[/php]

ECショップの商品ページによくある長ーい商品説明画像を分割して読み込む場合に便利