WordPress のフォルダにあるファイルの一覧を取得して、画像ファイルであれば出力して表示する方法のメモ。
ファイルの一覧を取得して出力するには以下のようにする。
この時、URL からサーバー内部のファイル一覧を取得することはできないので「get_template_directory()」を使用する。( http:// で始まる URL ではなくディレクトリのパス)
「get_template_directory_uri()」や「get_bloginfo(‘template_url’)」ではNG。
<?php
$dirName = get_template_directory(). '/images/top_photo/';
if ($dir = opendir($dirName)) {
    while (($file = readdir($dir)) !== false) {
        if ($file != "." && $file != "..") {
            echo $file;
        }
    } 
    closedir($dir);
}
?>
または、以下のようにしても同じような結果が得られる。
<?php
$dirName = get_template_directory(). '/images/top_photo/';
$dir = dir($dirName);
while(FALSE !== ($fileName = $dir->read())){
   if ($fileName != "." && $fileName != "..") {
    echo $fileName;
  }
}
?>
上記の場合、そのフォルダ内にフォルダがあればそのフォルダ名も取得される。
<?php
$dirName = get_template_directory(). '/images/top_photo/';
$dir = dir($dirName);
while(FALSE !== ($fileName = $dir->read())){
  $path = $dir->path. '/' .$fileName;  
  if(@getimagesize($path)){
    $imageFileNames[] = $fileName;
  }
}
sort($imageFileNames, SORT_STRING) ;
foreach ( $imageFileNames as $imageFileName ){
  $src = get_template_directory_uri(). '/images/top_photo/' .$imageFileName ;
  echo '<img src="'.$src. '" width="680" height="420" alt="">';  
}
?>