[WordPress]RSSフィードにアイキャッチ画像

TIPS

WordPressの標準のRSSフィード(?feed=rss2)には、デフォルトではアイキャッチ画像(サムネイル)のURLを出力するタグ(<enclosure><media:content>)が含まれていません。

これを解決する最も簡単で安全な方法functions.php に数行のコードを追加して、フィードにアイキャッチ情報を自動挿入することです。

プラグインを増やすことなく実装できる「コードを追加する方法」と、コードを触りたくない場合の「プラグインを使う方法」の2パターンを解説します。

方法1:functions.php にコードを追加

各サブディレクトリのWordPressのテーマにある functions.php に以下のコードを貼り付けるだけで、フィードの中にアイキャッチ画像の情報が正しく追加され、Feedzyなどの外部プラグインが画像を認識できるようになります。

設置ステップ

  1. WordPress管理画面にログインします。
  2. 左メニューの 「外観」 > 「テーマファイルエディター」 を選択します。
  3. 右側のファイル一覧から functions.php(テーマのための関数) をクリックして開きます。
  4. ファイルの最下部に、以下のコードをそのまま貼り付けます。
/**
 * RSSフィードにアイキャッチ画像(XMLタグ)を追加する
 */
function rss_post_thumbnail($content) {
    global $post;
    if (has_post_thumbnail($post->ID)) {
        $thumbnail_id = get_post_thumbnail_id($post->ID);
        $thumbnail_url = wp_get_attachment_image_url($thumbnail_id, 'medium'); // サイズは 'full' や 'medium' など
        
        // フィードの本文(Description)の先頭に画像を埋め込む場合(Feedzy等で確実に拾わせるため)
        $content = '<p><img src="' . esc_url($thumbnail_url) . '" alt="' . esc_attr($post->post_title) . '" class="webfeed-featured-image" /></p>' . $content;
    }
    return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');

// 拡張的なRSS規格(RSS2.0 enclosure)にも画像URLを載せる
function add_rss_images() {
    global $post;
    if (has_post_thumbnail($post->ID)) {
        $thumbnail_id = get_post_thumbnail_id($post->ID);
        $thumbnail_url = wp_get_attachment_image_url($thumbnail_id, 'full');
        $thumbnail_size = filesize(get_attached_file($thumbnail_id));
        $thumbnail_mime = get_post_mime_type($thumbnail_id);
        
        echo '<enclosure url="' . esc_url($thumbnail_url) . '" length="' . esc_attr($thumbnail_size) . '" type="' . esc_attr($thumbnail_mime) . '" />';
    }
}
add_action('rss2_item', 'add_rss_images');
  1. 「ファイルを更新」 をクリックして保存します。

💡 注意: 子テーマを使っていない場合、テーマをアップデートするとこの記述が消えてしまうため、もしアップデートがあっても残したい場合は次の「方法2」のプラグインをお使いください。

方法2:プラグインで解決

コードを直接書き換えるのが不安な場合は、フィードを拡張するためだけの専用プラグインを導入するのが簡単です。

導入ステップ

  1. WordPress管理画面の「プラグイン」>「新規追加」を開きます。
  2. 検索窓に 「Featured Images in RSS Feeds」 または 「Add Featured Image to RSS Feed」 と入力します。
  3. インストールして 有効化 します。
  4. 有効化するだけで、標準の /?feed=rss2 の中に自動的にアイキャッチ画像のタグが埋め込まれます。

設置後の確認手順

  1. コード追加、またはプラグイン有効化のあと、ブラウザで https://mtoy.work/develop/?feed=rss2 にアクセスします。
  2. 画面上(またはソースコード表示)で、各記事の <description> 内に <img src="..."> が入っているか、あるいは <enclosure ... /> というタグが追加されているか確認します。

コメント

タイトルとURLをコピーしました