現在の接続環境は
です

記事内にプロモーションが含まれています。

WordPress カスタマイズ 伝えたいこと 備忘録

プロモーションを含みます

WordPressでRSSフィードに確実にアイキャッチ画像を反映させる方法

所要時間目安: 4

This session is using  IPv4  is established in

今日は2025年7月19日です。

目次に行く・戻る

2025年7月19日 (土曜日)↓における週間月間人気記事トップ3は?↓

  • 本日
  • 週間
  • 月間

計測データがありません。

  1. WordPressプラグインPush7にてWarning: session_start(): Session cannot be started after headers have already been sent in /home/サーバID/domain/public_html/wp-content/plugins/push7/classes/push7.php on line 59解決方法 2PV

    WordPressプラグインの中に、Push7というプラグインがあります。最新バージョンで3.0.7となっています。これはブラウザなど該当サイトが記事更新などした際に、プッシュ通知をするプラグインです…

    もっと読む

  2. プロステージ

    エクストレイルおすすめエンジンオイルにプロステージSの10W-40を試してみた 2PV

    車にとってエンジンオイルは心臓部であるエンジンを保護するための重要な潤滑剤(潤滑油)です。他にもクーラント液やブレーキフルードなどのオイル関係はありますが、一番シビアな環境にあるエンジンを直接保護する…

    もっと読む

  3. T32エクストレイルマイナーチェンジ後ステアリング外し方

    エクストレイルT32マイナーチェンジ後ステアリング外し方 1PV

    エクストレイルT32型(NT32も含め)がマイナーチェンジしてから早いもので、もうすぐ2年になります。エンジンなどの大きな変更などはなく、室内の内装デザインや外装のちょっとしたデザイン変化、そして、一…

    もっと読む

  1. WordPressプラグインPush7にてWarning: session_start(): Session cannot be started after headers have already been sent in /home/サーバID/domain/public_html/wp-content/plugins/push7/classes/push7.php on line 59解決方法 2PV

    WordPressプラグインの中に、Push7というプラグインがあります。最新バージョンで3.0.7となっています。これはブラウザなど該当サイトが記事更新などした際に、プッシュ通知をするプラグインです…

    もっと読む

  2. プロステージ

    エクストレイルおすすめエンジンオイルにプロステージSの10W-40を試してみた 2PV

    車にとってエンジンオイルは心臓部であるエンジンを保護するための重要な潤滑剤(潤滑油)です。他にもクーラント液やブレーキフルードなどのオイル関係はありますが、一番シビアな環境にあるエンジンを直接保護する…

    もっと読む

  3. T32エクストレイルマイナーチェンジ後ステアリング外し方

    エクストレイルT32マイナーチェンジ後ステアリング外し方 1PV

    エクストレイルT32型(NT32も含め)がマイナーチェンジしてから早いもので、もうすぐ2年になります。エンジンなどの大きな変更などはなく、室内の内装デザインや外装のちょっとしたデザイン変化、そして、一…

    もっと読む

WordPressは、アイキャッチ画像の設定の先駆けとも言えるのにも関わらずアイキャッチ画像をRSSフィードへの反映はされないのがデフォルト仕様になっています。そこで、RSSフィードにてもアイキャッチ画像を反映されるようにするコードは以下になります。以前にもRSSフィードへの反映方法はいろいろ試行錯誤しましたが、結果的に以下のコードにて落ち着いています。決して以前のRSSフィードにアイキャッチ画像を反映させる方法が使えないということではありませんのでご了承ください。同じようなコードを使用している方や紹介されている方もいらっしゃいます。どちらが良いのということではなくこのような方法もあるという意味合いです。

この記事を読む方へのオススメ

WordPressにてRSSフィードにアイキャッチ画像をしっかりと反映させる方法のコードです。

// RSSフィードにアイキャッチ画像と100文字の抜粋を追加する
function add_image_and_excerpt_to_rss($content) {
    global $post;

    // フィードでない場合は変更しない
    if (!is_feed()) {
        return $content;
    }

    // 投稿にアイキャッチ画像があるか確認
    if (has_post_thumbnail($post->ID)) {
        $thumbnail_id = get_post_thumbnail_id($post->ID);
        $thumbnail = wp_get_attachment_image_src($thumbnail_id, 'medium');

        if ($thumbnail && isset($thumbnail[0])) {
            $image_url = esc_url($thumbnail[0]);
            $image_html = '<p><img src="' . $image_url . '" alt="' . esc_attr(get_the_title($post->ID)) . '" /></p>';
            $content = $image_html . $content;
        }
    }

    // 投稿の抜粋を取得し、100文字に制限
    $excerpt = get_the_excerpt();
    $excerpt = mb_strimwidth($excerpt, 0, 100, '...', 'UTF-8');
    $excerpt_html = '<p>' . esc_html($excerpt) . '</p>';

    // 抜粋をコンテンツの前に追加
    $content = $excerpt_html . $content;

    return $content;
}
add_filter('the_excerpt_rss', 'add_image_and_excerpt_to_rss');
add_filter('the_content_feed', 'add_image_and_excerpt_to_rss');

これはアイキャッチ画像のみではなく抜粋記事として100文字を取得するようにしています。

また、以下のサイトを参照しますとRSSフィードの更新(反映)時間がWordPressの場合はデフォルトで12時間のようなので、その更新(反映)時間を変更すると良いのかと思われます。

ただ、リアルタイムに近くなる分サーバーによってはページの表示時間がかなり遅くなってしまう場合があるようです。

なので、いくつかのサイトを拝見させていただき2時間での更新時間(反映時間)が一番良さそうでした。以下の上記RSSフィードにアイキャッチ画像を反映させ抜粋記事100文字のコードに追加して以下のコードを追記するとよいのかもしれません。

// RSS フィードのキャッシュ更新間隔を 2 時間に設定
function custom_feed_cache_lifetime($seconds) {
    return 7200; // 2 時間 = 7200 秒
}
add_filter('wp_feed_cache_transient_lifetime', 'custom_feed_cache_lifetime');

RSSキャッシュをなくしリアルタイムに反映させる方法は以下になります。(参考程度に)

/** フィードのキャッシュオフ**/
function ha_turn_off_feed_caching($feed){
  $feed-> enable_cache(false);
}
add_action('wp_feed_options','ha_turn_off_feed_caching');

これで上記した更新時間のキャッシュによる遅延がなくなるようです。

結論としては、上記大元のRSSフィードにアイキャッチ画像と抜粋記事100文字のコードと2時間の更新間隔にしています。

まとめますと以下のコードのようになります。

// RSSフィードにアイキャッチ画像と100文字の抜粋を追加する
function add_image_and_excerpt_to_rss($content) {
    global $post;

    // フィードでない場合は変更しない
    if (!is_feed()) {
        return $content;
    }

    // 投稿にアイキャッチ画像があるか確認
    if (has_post_thumbnail($post->ID)) {
        $thumbnail_id = get_post_thumbnail_id($post->ID);
        $thumbnail = wp_get_attachment_image_src($thumbnail_id, 'medium');

        if ($thumbnail && isset($thumbnail[0])) {
            $image_url = esc_url($thumbnail[0]);
            $image_html = '<p><img src="' . $image_url . '" alt="' . esc_attr(get_the_title($post->ID)) . '" /></p>';
            $content = $image_html . $content;
        }
    }

    // 投稿の抜粋を取得し、100文字に制限
    $excerpt = get_the_excerpt();
    $excerpt = mb_strimwidth($excerpt, 0, 100, '...', 'UTF-8');
    $excerpt_html = '<p>' . esc_html($excerpt) . '</p>';

    // 抜粋をコンテンツの前に追加
    $content = $excerpt_html . $content;

    return $content;
}
add_filter('the_excerpt_rss', 'add_image_and_excerpt_to_rss');
add_filter('the_content_feed', 'add_image_and_excerpt_to_rss');

// RSS フィードのキャッシュ更新間隔を 2 時間に設定
function custom_feed_cache_lifetime($seconds) {
    return 7200; // 2 時間 = 7200 秒
}
add_filter('wp_feed_cache_transient_lifetime', 'custom_feed_cache_lifetime');

あなたにおすすめ


Multiplex 広告

あなたが訪問してから

0 秒経過 🎉

入学入社まであと…入学入社祝いはどんなPresent(プレゼント)でどのように過ごされますか?

ホワイトデープレゼントは以下などの豊富なキャンペーン商品から選ぶと良いと思います。

ブログサービスが始まってから:


カウントダウンタイマー

おすすめの記事一部広告

Total121


アドセンス336pxPC閲覧記事下表示1つ目コード

目次に戻る

よろしかったらシェアよろしくお願いします。

-WordPress, カスタマイズ, 伝えたいこと, 備忘録

目次に戻る

目次に戻る


コメントを表示(0)

コメントを書く

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

新着コメント