2024年10月16日 (水曜日)本日の人気記事トップ10
今日は2024年10月16日です。
目次に行く・戻る
メルカリ招待コード: 招待コードをコピー
これまでに何度かThemeによってRSSフィードやFeedlyなどにアイキャッチ画像が表示されないThemeがあります。このアイキャッチ画像を今更ながら再検証してみました。以前にfunction.phpにコード記載にて表示させる方法をいくつか試してみてきました。結果、Themeによって若干の違いがあることに気づきました。以下にアイキャッチ画像をプラグインなしでしっかりとRSSフィードに表示させる方法のコードを記載します。それぞれのThemeによってベストな方法が少し異なると思われますので、各々のThemeに合わせたコードを確認してみてください。
※function.phpの弄るのでまずはじめにバックアップをとってからにしてください。 (子テーマにて行うのを推奨します。)
アドセンス336pxPC閲覧記事下表示1つ目コード
+これまでによく読まれている記事一覧クリックでOPEN+
150,633件の PV
106,657件の PV
75,748件の PV
67,240件の PV
44,461件の PV
40,723件の PV
38,216件の PV
37,259件の PV
36,611件の PV
33,342件の 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)な方法です。
Opt-out complete; your visits to this website will not be recorded by the Web Analytics tool. Note that if you clear your cookies, delete the opt-out cookie, or if you change computers or Web browsers, you will need to perform the opt-out procedure again.
You may choose to prevent this website from aggregating and analyzing the actions you take here. Doing so will protect your privacy, but will also prevent the owner from learning from your actions and creating a better experience for you and other users.
comment