サポート » 使い方全般 » アイキャッチがない場合、記事内の最初の画像を使用する

  • アイキャッチを設定していない場合
    記事内の最初の画像をアイキャッチのように使用したくて
    http://kotori-blog.com/wordpress/entry_first_img/
    こちらを参考に入れてみたのですが
    記事内の最初の画像ではなく、最後の画像が表示されてしまいます。

    原因が分かる方いらっしゃらないでしょうか?
    どうかよろしくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • こんにちは

    リンク先のコードは、
    「ループ内に下記コードを追加」
    というコードをシングルページのどこに記述するかで、なんだかちょっと動作が変わってくる気もします。
    しかし、最後の画像が表示される理由はちょっと分かりません。

    これが正解か分かりませんが、私が書いてみたコードは以下のとおりです。

    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(); ?>

    このソースでも最後の画像になってしまうのなら・・・私にはちょっと分かりません。

    試していませんが、こんな記事がありました。

    『catch_that_image()』でうまく最初の画像が取得できない

    参考までに。

    画像が投稿内にない場合は、設定値が表示できていますか。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。