RSSリーダーに配信する設定をしているときに、内容がおかしいときがあります。
原因を特定は、記事本体の配信内容とからむ場合もありますが、 この配信内容を見直すのが、エラーチェックの1つの方法です。
RSS配信内容の見直しの仕方と修正をご提示します。
設定の確認方法
RSSで読まれる内容と言うのは、対象のURLに「/feed/」をつけると見ることができます。
例えば、https://www.ak-up.com/free-blog-vs-wordpress/ に対してRSSの内容を確認したければ、
https://www.ak-up.com/free-blog-vs-wordpress/feed/
と入れてみます。
このように内容が確認できます。
以下のコードの内容は読み飛ばしてもいいですが、一応説明をつけておきます。
- <?xml version=”1.0″ encoding=”UTF-8″?>
- XMLの宣言をしています。以下の内容がXML形式で、バージョン1.0を使用していて、文字エンコーディングがUTF-8であることを示しています。
- <rss version=”2.0″ …>
- これはRSSフィードの開始を示します。使用しているRSSのバージョンが2.0です。
- <channel>
- RSSフィードの主要な部分を囲むタグで、フィードの内容が含まれます。
- <title>
- フィードのタイトルです。
- <atom:link … />
- Atomフィードへのリンクです。
- <link>
- フィードに関連するウェブサイトのURLです。
- <description>
- フィードの説明です。
- <lastbuilddate>
- フィードが最後に更新された日時です。
- <sy:updateperiod> と <sy:updatefrequency>
- これらはフィードがどのくらいの頻度で更新されるかを示します。ここでは「hourly」と「1」が設定されており、1時間ごとに更新されることを意味します。
- <generator>
- このフィードを生成したソフトウェアに関する情報です。ここではWordPressのバージョンが示されています。
- </channel> と </rss>
- <channel>タグと<rss>タグの終了を示しています。
Card Viewの追加修正
上記のRSSの内容でRSSの配信はうまくいっているのですが、Card viewが表示されないケースがありました。
修正方法を記録しておきます。
修正方法の例
function.phpに下記のコードを入れます。
my-custom-rss-template.phpを参照してコードを追加してほしいという内容です。
remove_filter('do_feed_rss2', 'do_feed_rss2', 10);
add_action('do_feed_rss2', function($for_comments){
$rss_template = get_template_directory() . '/my-custom-rss-template.php';
if( file_exists($rss_template) ) {
load_template($rss_template);
} else {
do_feed_rss2($for_comments); // 既定のテンプレートをフォールバックとして使用
}
}, 10, 1);
my-custom-rss-template.phpを作成して、下記を入れ込みます。
<?php
echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
<rss version="2.0">
<channel>
<title><?php bloginfo_rss('name'); ?> - Feed</title>
<link><?php bloginfo_rss('url') ?></link>
<description><?php bloginfo_rss('description') ?></description>
<lastBuildDate><?php echo get_lastpostmodified('GMT'); ?></lastBuildDate>
<language><?php echo get_option('rss_language'); ?></language>
<?php while(have_posts()) : the_post(); ?>
<item>
<title><?php the_title_rss(); ?></title>
<link><?php the_permalink_rss(); ?></link>
<guid isPermaLink="false"><?php the_guid(); ?></guid>
<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
<description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
<?php if ( has_post_thumbnail() ) : ?>
<?php
$image_url = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'large');
?>
<enclosure url="<?php echo esc_url($image_url[0]); ?>" type="image/jpeg"/>
<?php endif; ?>
</item>
<?php endwhile; ?>
</channel>
</rss>
問題を確認して微調整を
画像の修正においてはCard viewが吐き出されるようになりました。
RSSの設定がうまくいっていても、投稿についてくるパラメータに余計に画像が入っていたり、入ってなかったりがあります。
状況を見て微調整をかけていきましょう。
【編集後記】
今期の覇権に入っていませんが、最果てのパラディンの2期もなかなかいいです。
「灯火の港の群像」までは入らないかもしれませんが、楽しみに見ています。
【運動記録】
ストレッチ○
【子育て日記(6歳・2歳)】
クリスマスが近づいているので、候補を選んで少しずつ聞いています。
欲しいもので、もらって喜ぶものを当てられるようにがんばります。