WEB

WordPressのRSSにアイキャッチを追加 IFTTTでXに画像付き自動投稿する方法

AISSTO

はじめに

ブログを書いたら自動でX(旧Twitter)にシェアされると便利ですよね。
私も最初はIFTTTを使って「RSSから自動投稿」を設定しました。ところが最初に直面したのが 「画像が出ない」 という問題でした。

タイトルやURLは投稿されるのに、サムネイルが表示されず「File not found」とだけ出てしまう。これでは見栄えが悪く、クリック率も落ちてしまいます。

調べていくと、WordPressの標準RSSにはアイキャッチ画像の情報が含まれないことが原因だと分かりました。
今回はこの問題を解決するために、私自身が導入してうまくいった MU-plugin方式 を紹介します。

OCCHI
OCCHI

プラグインで解決する方法もありますが、今回はより確実で軽量な MU-plugin方式に絞って解説します。

注意事項
  • 本記事の内容を実施する際は、必ずバックアップを取得のうえ、環境に合わせて慎重に進めてください。
  • すべて自己責任での対応となります。テーマやプラグイン、サーバー設定によって結果が異なる場合があります。

なぜRSSに画像が出ないのか?

WordPress標準のRSSの仕様

WordPressの標準フィードは、記事のタイトル・本文・URLは出力します。
しかし、記事に設定した「アイキャッチ画像(サムネイル)」は含まれません。

IFTTTの仕組み

IFTTTはRSSフィードを読み取り、各項目をXに転送します。
画像は EntryImageUrl を参照しますが、WordPressのRSSにその情報が無いため、空欄になり「File not found」と表示されてしまうのです。

あわせて読みたい
超便利!!ブログ更新→自動でX(旧Twitter)に投稿「IFTTT」の設定方法
超便利!!ブログ更新→自動でX(旧Twitter)に投稿「IFTTT」の設定方法

MU-plugin方式とは?

MU-plugin(Must Use Plugin)は、WordPressの wp-content/mu-plugins/ に置くだけで自動的に有効化される特別な仕組みです。

  • 有効化操作が不要
  • テーマ更新や通常のプラグイン更新の影響を受けない
  • 軽量で安定して動作する

RSSにアイキャッチを追加する処理をMU-pluginとして書いておけば、一度設置すれば放置でOKになります。


実装手順

実施前チェックリスト
  • フルバックアップ(DB/ファイル)を取得した
  • ステージング環境で動作確認済み
  • キャッシュ/CDNを一時停止またはパージできる
  • 直近でテーマ・プラグイン更新予定がない(干渉の心配なし)

ステップ1: mu-pluginsフォルダを準備

サーバーの wp-content/ 内に mu-plugins フォルダを作成します。

もしすでに存在していれば、そのまま利用可能です。


ステップ2: PHPファイルを作成

featured-image-in-rss.php という名前のファイルを新規作成し、以下のコードを貼り付けます。

<?php
/**
 * RSSにアイキャッチを追加するMU-plugin
 */
if (!defined('ABSPATH')) exit;

/* RSSにmedia名前空間を追加 */
add_action('rss2_ns', function () {
    echo 'xmlns:media="http://search.yahoo.com/mrss/"' . "\n";
});

/* アイキャッチ → 本文1枚目 → サイトアイコン の順で取得 */
function my_get_post_image_url_for_feed($post_id, $size = 'full') {
    $url = get_the_post_thumbnail_url($post_id, $size);
    if ($url) return esc_url($url);

    $content = get_post_field('post_content', $post_id);
    if ($content && preg_match('/<img[^>]+src=["\']([^"\']+)["\']/i', $content, $m)) {
        return esc_url($m[1]);
    }

    $site_icon_id = get_option('site_icon');
    if ($site_icon_id) {
        $icon = wp_get_attachment_image_src($site_icon_id, 'full');
        if (!empty($icon[0])) return esc_url($icon[0]);
    }
    return '';
}

/* RSSの各itemに画像情報を追加 */
add_action('rss2_item', function () {
    global $post;
    if (empty($post) || empty($post->ID)) return;

    $img = my_get_post_image_url_for_feed($post->ID, 'full');
    if (!$img) return;

    $mime = 'image/jpeg';
    $ext  = strtolower(pathinfo(parse_url($img, PHP_URL_PATH), PATHINFO_EXTENSION));
    if ($ext === 'png') $mime = 'image/png';
    elseif ($ext === 'gif') $mime = 'image/gif';
    elseif ($ext === 'webp') $mime = 'image/webp';

    echo '<media:content url="' . esc_url($img) . '" medium="image" type="' . esc_attr($mime) . '" />' . "\n";
    echo '<enclosure url="' . esc_url($img) . '" length="0" type="' . esc_attr($mime) . '" />' . "\n";
});

/* 本文先頭にも<img>を差し込む(保険用) */
add_filter('the_content_feed', function ($content) {
    global $post;
    if (empty($post) || empty($post->ID)) return $content;

    $img = my_get_post_image_url_for_feed($post->ID, 'full');
    if (!$img) return $content;

    return '<p><img src="' . esc_url($img) . '" alt="' . esc_attr(get_the_title($post)) . '"></p>' . "\n" . $content;
});

ステップ3: WordPressの設定

  • 「表示設定 → フィードの各投稿に」 → 全文を表示 を選択
  • 記事ごとに必ずアイキャッチを設定

これで準備完了です。


動作確認

RSSフィードのチェック

ブラウザで https://ドメイン名/feed/ を開きます。
<item> の中に <media:content><enclosure> が追加されていれば成功です。

IFTTTの設定
  • Trigger(トリガー): RSS → New feed item(Feed URLは /feed/
  • Action: Post a tweet with image
    • Image URL{{EntryImageUrl}}
    • Tweet text{{EntryTitle}} | {{EntryUrl}} など
記事を投稿

Xにサムネイル付きで自動投稿されるかチェック

ブログを更新すると、Xでサムネイルがこの様に表示されます。

トラブルシューティング

  • 画像が出ない
    → キャッシュプラグイン(WP Rocket / LiteSpeed / Cloudflare など)を削除またはクリアして再確認
  • File not found が出る
    → サーバーのホットリンク防止設定を見直す
  • アイキャッチを付けていない記事
    → 本文1枚目の画像を代替として拾うようにしてある
  • コードが動いていない
    → MU-pluginファイルの場所や <?php の記述を確認

まとめ

  • WordPress標準のRSSにはアイキャッチが含まれないため、IFTTTで画像付き自動投稿ができない
  • MU-plugin方式なら、一度設置すればテーマやプラグイン更新に左右されず安定して動作
  • プラグインでも解決可能だが、今回は MU-plugin方式に絞って解説 しました。
OCCHI
OCCHI

これでブログの更新を自動で発信して、多くの人に知らせる自動化をしていきましょう!

免責事項
  • 本記事は執筆時点の検証結果をもとに提供しています。記載の手順により生じたいかなる損害についても、当サイトは一切の責任を負いません。
  • 変更前にはデータベースとファイルのバックアップを取得し、可能であればステージング環境で検証してから本番へ反映してください。
ABOUT ME
OCCHI
OCCHI
FBP・AIクリエイター・etc..
元デザイナー・猫の手も借りたい販促に関わる方の味方。デザイナー25年→営業10年→現在WEBマーケッター&AIクリエイター→世界中の広告とサッカーを見に行く事が目標。AI関連のTikTokで10日強でフォロワー3,000人達成。販促やアイディアにお困りの方が役に立つ情報やノウハウを発信していきます。SNS多数運営。総フォロワー数10,000人以上。
記事URLをコピーしました