WordPressのRSSフィードにアイキャッチ画像を追加する方法です。
RSSにアイキャッチ画像のパスを含めておくと、外部サイトを経由した場合でも画像を表示できます。
このサイトも本家からサブドメインのRSSを参照し、そこからアイキャッチ画像のパスを入手してます。
主にニュースサイトとかで利用される手法で、文字だけリンクよりも見た目が良い感じになります。
◆ 安全にfunctions.phpをカスタマイズする方法
functions.phpの修正に不安がある人は以下を参考にしてください。
[WordPress] 安全にfunctions.phpをカスタマイズする方法
functions.phpを直接修正するのは不具合時の対処やテーマ更新時に大変ですよね。それでも手間を減らす方法もあり、ここで紹介する方法と以下の記事の内容でそこそこ安全に改造できます。 拡張用のfunctions.phpを新規作成する 最初にカスタマイズ用のコードを記述するためのphpファイルを作成します。配置するディレクトリとファイル名は好みで大丈夫です。とりあえず、ここではfunctions.phpと同じディレクトリにextend-functions.phpとして作成し...
コードを追加する
functions.phpとかに以下のコードを追加します。
// RSSの出力をカスタマイズ
add_action('rss2_ns', function () {
echo 'xmlns:media="http://search.yahoo.com/mrss/"';
});
add_action('rss2_item', function () {
global $post;
if (has_post_thumbnail($post->ID)) {
$thumbnail = get_the_post_thumbnail_url($post->ID, 'full');
echo '<media:thumbnail url="' . esc_url($thumbnail) . '" />';
}
});
仕組み
最初にMedia RSSを出力するためにrss2_nsを使います。
これでRSSの頭の方の名前空間を出力します。
次にrss2_itemでRSSにアイキャッチ画像のパスを追加します。
方法は何でもいいので画像のパスを取得。それを出力すればOK。
media:thumbnailを利用してるのはWordPress標準機能で取得できるから。
実際にアイキャッチ画像のパスを取得する方法はこちら。
[WordPress] RSSから情報を取得する方法 & RSSのキャッシュを無効化
WordPressのRSSフィードから情報を取得する方法です。 基本的に他サイトのRSSを参照して何かしたい場合に利用します。例をあげるならニュースサイトですかね。外部サイトの新着情報の一覧とか作れます。 また、アイキャッチ画像を表示したい場合はRSSに画像パスを含める必要があります。 RSSのキャッシュを無効化 先にRSSのキャッシュ機能を無効化します。 WordPressにはRSSをキャッシュする機能があり、通常だと前回取得から12時間経過しないと再取得...
Tipsrss2_itemはRSSに項目を追加するactionなので画像以外も追加できます。
あとがき

稀にdescriptionにアイキャッチのパスを含める記事がありますが、まず間違いなのでやめましょう。

仕組みは正しく使おうね。
この記事は参考になりましたか?
コメント