ワードプレスのRSSフィードでサムネイル画像(アイキャッチ)を取得する方法【簡単】

ワードプレスのRSSフィードを利用して、外部サイトに記事一覧をだしているけど、サムネイル画像(アイキャッチ画像)を取得することが出来ない。。
このような疑問に回答します。
本記事では、ワードプレスのRSSフィード内にサムネイル画像(アイキャッチ画像)を含める方法について、解説します。
fanctions.phpにコードを追加
<?php
// Feedにアイキャッチ画像を表示する
function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) . '</p>' . $content;
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
?>
上記ソースをRSSを配信する側のワードプレスのfunctions.phpに追加します。
ワードプレスにはもともとRSSフィードが備わってますが、アイキャッチ画像を引っ張ってきておりません。
上記ソースを入れることで、通常記事のコンテンツテキストが入れられてあるRSSフィードの場所に、pタグ+アイキャッチURL付きのimgタグを差し込むことが可能になります。
https://×××.com/feed/
<content></content:encoded>
実際に上記URL(×××.comのところはRSS配信するワードプレスサイトURL)をブラウザでひらいて、contentタグ内にimgタグが出力されているか確認しましょう。
コードが反映されていたらOKです。
RSS記事を埋め込む側で出力するコードを記載
<?php
//URL
$url = "https://×××.com/feed"; //記事一覧を持ってきたいサイトのfeedURLを記載
$context = stream_context_create(array('http' => array('method' => 'POST', 'header' => 'Content-Type: application/json'), 'ssl' => array('verify_peer' => false, 'verify_peer_name' => false,),));
$getTXT = file_get_contents($url, false, $context);
$getRss = simplexml_load_string($getTXT);
foreach ($getRss->channel->item as $item) {
$i++;
if ($i == 6) break;//何件まで表示するか
$description = $item->description;//コンテンツ
$imgurl = preg_match('/<img[^>]+src=[\'"]([^\'"]+)[\'"][^>]+\>/i', $description, $imgurls);//コンテンツからimgタグ無いのURLを抜き出す
$date = date("Y年 n月 j日", strtotime($item->pubDate));//投稿日
$link = $item->link; //記事のリンク
$title = $item->title; //記事のタイトル
$category = $item->category; //記事のカテゴリー
$e_content = $item->children("content", true);
$e_encoded = (string) $e_content->encoded;
$output = preg_match('/<img[^>]+src=[\'"]([^\'"]+)[\'"][^>]+\>/i', $e_encoded, $matches);
$first_img = $matches[1]; //記事中の最初の画像
?>
<!-- ここからコンテンツ -->
<article class="list">
<a href="<?= $link ?>">
<div class="common_img">
<img src="<?= $imgurls[1] ?>" alt="<?= $title ?>">
</div>
<div class="common_content">
<p class="common_title"><?= $title ?></p>
<p class="common_category"><?= $category ?></p>
</div>
</a>
</article>
<?php } ?>
後は上記コードを、RSS埋め込み側のサイトにコピペすればOK!
以前紹介したRSSフィードの埋め込み方の記事と同様のやり方で、アイキャッチ部分を追加した形になります。
以前の紹介記事はこちら
https://kasumiblog.org/rss-acquisition/
以上で完成です。
まとめ
ワードプレスでデフォルトで備わっているRSSフィードですがアイキャッチはデフォルトでは備わってないんですよね。
いずれは上記のようなやり方をしなくても、デフォルトで備わってほしいです。。
以上で解説を終わります。