こんにちは
リンク先のコードは、
「ループ内に下記コードを追加」
というコードをシングルページのどこに記述するかで、なんだかちょっと動作が変わってくる気もします。
しかし、最後の画像が表示される理由はちょっと分かりません。
これが正解か分かりませんが、私が書いてみたコードは以下のとおりです。
functions.php
class ThumbnailHolder {
private static $instance;
private function __construct(){}
private $thumbnail = '/images/default.jpg';
public static function getInstance(){
if (!self::$instance) self::$instance = new ThumbnailHolder();
return self::$instance;
}
public function setThumbnail($thumbnail_src){
$this->thumbnail = $thumbnail_src;
}
public function getThumbnail(){
return $this->thumbnail;
}
}
function my_the_post_action($post_object) {
if(preg_match('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post_object->post_content, $matches) === 1){
$holder = ThumbnailHolder::getInstance();
$holder->setThumbnail($matches[0]);
}
}
add_filter( 'the_post', 'my_the_post_action', 10, 1 );
single.phpなどのループ部分
<?php echo ThumbnailHolder::getInstance()->getThumbnail(); ?>
このソースでも最後の画像になってしまうのなら・・・私にはちょっと分かりません。
画像が投稿内にない場合は、設定値が表示できていますか。