RSSにアイキャッチ画像と抜粋(PHP7+型宣言対応)を追加する方法

WordPressのRSSフィードには標準で記事タイトルと本文のみが出力されます。
アイキャッチ画像や抜粋をRSSに追加すると、メールマガジンやRSSリーダーで見栄えが良くなります。

1 実装のポイント

RSSフィードにアイキャッチや抜粋を追加するには、functions.phpにフィルターを追加します。アイキャッチはget_the_post_thumbnail_url()、抜粋はget_the_excerpt()を使用します。

2 functions.php にコードを追加


//-------------------------------------------
// RSSにアイキャッチ画像と抜粋を追加(PHP7+型宣言対応)
//-------------------------------------------
function rss_thumbnail_and_excerpt(string $content): string {
    $post_id = get_the_ID();

    if (!$post_id) {
        return $content;
    }

    // アイキャッチ画像のHTML取得
    $thumbnail_html = '';
    if (has_post_thumbnail($post_id)) {
        $thumbnail_url = get_the_post_thumbnail_url($post_id, 'medium');
        if ($thumbnail_url) {
            $thumbnail_html = '<p><img src="' . esc_url($thumbnail_url) . '" alt="' . esc_attr(get_the_title()) . '" /></p>';
        }
    }

    // 抜粋を取得
    $excerpt_html = '';
    $excerpt = get_the_excerpt($post_id);
    if ($excerpt) {
        $excerpt_html = '<p>' . esc_html($excerpt) . '</p>';
    }

    // アイキャッチ+抜粋+本文の順で出力
    return $thumbnail_html . $excerpt_html . $content;
}

// RSS本文に適用
add_filter('the_excerpt_rss', 'rss_thumbnail_and_excerpt');
add_filter('the_content_feed', 'rss_thumbnail_and_excerpt');
    
補足:
- 画像サイズを変更したい場合は 'medium' を 'full' などに変更可能
- RSSリーダー上で画像幅を固定したい場合は CSS で制御可能

3 まとめ

RSSフィードにアイキャッチ画像と抜粋を追加することで、読者に視覚的にも訴求できる配信が可能です。