2025年1月22日 (水曜日)↓における週間月間人気記事トップ3は?↓
今日は2025年1月22日です。
目次に行く・戻る
2025年1月22日 (水曜日)本日の人気記事トップ10
メルカリ招待コード:
これまでに何度かThemeによってRSSフィードやFeedlyなどにアイキャッチ画像が表示されないThemeがあります。このアイキャッチ画像を今更ながら再検証してみました。以前にfunction.phpにコード記載にて表示させる方法をいくつか試してみてきました。結果、Themeによって若干の違いがあることに気づきました。以下にアイキャッチ画像をプラグインなしでしっかりとRSSフィードに表示させる方法のコードを記載します。それぞれのThemeによってベストな方法が少し異なると思われますので、各々のThemeに合わせたコードを確認してみてください。
※function.phpの弄るのでまずはじめにバックアップをとってからにしてください。
(子テーマにて行うのを推奨します。)
アドセンス336pxPC閲覧記事下表示1つ目コード
+これまでによく読まれている記事一覧クリックでOPEN+
151,134件の PV
106,911件の PV
75,762件の PV
67,241件の PV
47,033件の PV
40,882件の PV
38,225件の PV
37,260件の PV
36,781件の PV
36,102件の PV
プラグインなしでRSSフィードにアイキャッチ画像をしっかりと表示させる方法です。
上記しましたように、いくつかの方法がありますので複数のコードを掲載いたします。
(方法1)
// RSSにアイキャッチを出力
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');
(方法2)
//RSSフィードにアイキャッチ画像を追加
function rss_thumbnail($content) {
global $post;
if (has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID,'full') .'</p>' . $content;
}
return $content;
}
add_filter( 'the_excerpt_rss', 'rss_thumbnail');
add_filter( 'the_content_feed', 'rss_thumbnail');
方法2は、方法1の以下コード部分に画像サイズを指定したものになります。
$content = '<p>' . get_the_post_thumbnail($post->ID,'full') .'</p>' . $content;
上記の場合には「full」としていますので、そのThemeによる一番大きな画像サイズになります。
画像サイズは以下参照してください。
get_the_post_thumbnail($post->ID,'thumbnail') //サムネイルのサイズ
get_the_post_thumbnail($post->ID,'medium') //中サイズ
get_the_post_thumbnail($post->ID,'large') //大サイズ
get_the_post_thumbnail($post->ID,'full') //フルサイズ
get_the_post_thumbnail($post->ID,array(250,100)) //サイズ指定
上記のコードの意味は以下になります。
- thumbnail(サムネイルサイズ)
- medium(中サイズ)
- large(大サイズ)
- full(フルサイズ)
- array(上記のようにサイズ指定も可能)
一番大きな画像サイズですと、場合によっては大きすぎてRSSフィードに表示しきれずに画像としてではなく、表示としては以下のようになってしまうこともあります。
[image]・・・・[/image]抜粋記事内容◯◯◯◯◯◯50文字分や100文字分(指定抜粋文字数により異なります。)
ですので、
無難なのはthumbnailを指定すると良いと思います。
(方法3)
/** RSS Feeds へアイキャッチ画像を出力する
* 画像サイズは medium とする(代替サムネイルの多くが medium サイズの為)
*/
function rss_post_thumbnail($content) {
global $post;
$img = get_the_post_thumbnail($post->ID,'post-thumbnail');
if(!empty($img)){
$content = "<p>$img</p>" . $content;
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
上記方法3の場合のコードですと、アイキャッチ画像は表示されないわけではありませんが、
$img = get_the_post_thumbnail($post->ID,'post-thumbnail');
の部分がそのThemeによるいくつかのthumbnail(サムネイル画像)指定がありますので、その全てのサイズが表示されてしまいます。
ダッシュボードのメディア設定部分で確認可能です。
ですのでご自身のサイトのfeedを確認してみると、<description>の中にいくつかの画像サイズが出力されているのがわかると思います。
よって表示されないわけではありませんがオススメではありません。
方法4
一番のおすすめです。
//RSSフィードにアイキャッチ画像を追加
function rss_thumbnail($content) {
global $post;
if (has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID,'thumbnail') .'</p>' . $content;
}
return $content;
}
add_filter( 'the_excerpt_rss', 'rss_thumbnail');
add_filter( 'the_content_feed', 'rss_thumbnail');
上記コードですとしっかりとRSSフィードにサムネイル画像(thumbnail)指定で上記のWordPressのメディア設定部分で指定されているサムネイル画像のサイズのアイキャッチ画像がRSSフィードに出力されます。
1行目のfunction rss_post_thumbnail($content) {の関数部分はadd_filterの2つ目部分と同じにすれば何でも大丈夫です。
自分でもわかりやすくするために、
function rss_post_thumbnail($content) {
や
function rss_thumbnail($content) {
とrss◯◯というようにrssを付けているだけなのでadd_filterの部分と同じであれば何でも大丈夫です。
以上、
以前より訂正及びよりベター(Better)な方法です。
comment