Snow Monkey RSS ブロックでアイキャッチ画像を表示するのに必要なこと

Snow MonkeyテーマとSnow Monkey Blocks プラグインを組み合わせると、ブロックエディターにて、WordPress標準のRSSブロックに加えて、Snow Monkey BlocksのRSSブロックが利用できる。標準のRSSブロックと違い、Snow Monkeyのアイキャッチ画像が有る記事一覧レイアウト表示できるので便利だ。

ただし、RSSを使ってアイキャッチ画像を表示するなら2つの注意点がある。

1つ目は、アイキャッチ画像のデータは、初期設定のRSSフィードに出力されていないため、RSSフィードを使って記事一覧を表示したいブログ側(RSSブロックを配置する側でない)、言い換えると、RSSフィードを配信する側のfunctions.phpにコードを追記することが必要となること。

2つ目は、RSSフィードで記事一覧を表示すると、WordPressのキャッシュが有効になっており、なかなか表示が変更されないため、キャッシュを無効にするコードを、RSSブロックを配置したWordPressのfunctions.phpに追記する点だ。

アイキャッチ画像をRSSに加える

こちらのコードをRSSを配信するWordPressのfunctions.phpに追記するとOK。WordPressのコアファイルをカスタマイズする手法も、検索するとヒットするが、コアファイルを書き換えるとアップデートで困るので、必ずfunctions.phpからフックを使うコードでカスタマイズする。

function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = get_the_post_thumbnail($post->ID) . $content;
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');

function custom_attribute( $html ){
$html = preg_replace('/(width|height)="\d*"\s/', '', $html);
return $html;
}
add_filter( 'post_thumbnail_html', 'custom_attribute' );

こちらの記事を参考にしている。感謝です。

RSSのキャッシュを無効にする

デフォルトでは12時間のキャッシュが備わっている。つまり1度RSSを読むと12時間は変更が反映されない。それは、ちょっとキツイので、下のコードをRSSフィードを表示したいWordPressのfunctions.phpに追記する。

function fetch_feed_no_cache(&$feed) {
	$feed->enable_cache(false);
}
add_action( 'wp_feed_options', 'fetch_feed_no_cache' );

こちらの記事を参考にしている。感謝です。

ブログを書く中で、1番参考になった書籍はこちら。

ブログの文章を組み立てるポイントを知れた本はこちら。

この記事を書いた人

大東 信仁

カンパチが好きです。

プロフィールはこちら

10月14日開催 参加者募集中
(画像をタップ→詳細へ)

ミッションナビゲート モニター
(画像をタップ→詳細へ)

広告