WordPress:サイト運営者のためのRSS最適化

ウオトミズ(UOTOMIZU)の中の人

現時点での方法。もっと良い方法が見つかれば当記事は更新される。

WordPressの管理画面から編集

WordPressの管理画面の【設定】>【表示設定】にて、『RSS/Atom フィードで表示する最新の投稿数項目』と『RSS/Atom フィードでの各投稿の表示』を選択する。

 

RSS/Atomフィード設定画面

 

RSS/Atom フィードで表示する最新の投稿数項目 FeedlyやInoreader等のRSSリーダーに表示される最新の投稿数を選択する。
RSS/Atom フィードでの各投稿の表示 RSSリーダーで記事の全文を表示するか、抜粋のみを表示するかを選択する。※Inoreaderではユーザーの操作によってInoreader内でコンテンツの全文が読み込まれる。

 

注意点として、「抜粋のみを表示する」を選択した場合、サイト側で投稿記事にアイキャッチ画像を設定していても、RSSリーダーではアイキャッチ画像に記事中の画像を使うことが多いので、画像が表示されない場合がある。画像を表示するにはカスタマイズが必要。

 

RSSファイルをカスタマイズ

アイキャッチ画像を表示させたい場合

以下のコードをfunction.phpに記入する。

 

function.php


//RSSリーダー:アイキャッチ画像に設定した画像を表示させる

function rss_echo_thumb($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<div>' . get_the_post_thumbnail($post->ID,'full') . '</div>' . $content;
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_echo_thumb');

 

「抜粋のみ表示」で、アイキャッチ画像が設定されていない場合は、RSSリーダーに画像が読み込まれないので、記事にアイキャッチ画像を必ず設定するようにすること。

 

Feedly向けに最適化したい場合


<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
/* ここから:追加 */
xmlns:webfeeds = "http://webfeeds.org/rss/1.0"
/* ここまで:追加 */
<?php
/**
* Fires at the end of the RSS root to add namespaces.
*
* @since 2.0.0
*/
do_action( 'rss2_ns' );
?>
>
<channel>
<title><?php wp_title_rss(); ?></title>
/** ここから:追加 **/
<webfeeds:related layout="card" target="browser"/>
<webfeeds:analytics id="UA-00000000-0" engine="GoogleAnalytics"/>
<webfeeds:image><?php echo get_template_directory_uri();?>/img/feedly-cover-png</webfeeds:image>
<webfeeds:logo><?php echo get_template_directory_uri();?>/img/logo.svg</webfeeds:logo>
<webfeeds:accentColor>173762</webfeeds:accentColor>
/** ここまで:追加 **/
<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
<link><?php bloginfo_rss('url') ?></link>

...

...

追加コードについて

<webfeeds:related layout="card" target="browser"/>は、Feedly内で3年以内の関連記事を表示させるために記述する。

<webfeeds:analytics id="UA-00000000-0" engine="GoogleAnalytics"/>は、Feedly内のユーザー行動をGoogleアナリティクスで分析するために記述する。(UA-00000000-0は、自分のトラッキングコードに書き換える)

<webfeeds:logo><?php echo get_template_directory_uri();?>/img/logo.svg</webfeeds:logo>は、Feedly内でサイトロゴを表示させるために記述する。ファイルはSVGにしておく。

<webfeeds:accentColor>173762</webfeeds:accentColor>は、SVGのロゴ画像の配色をこのコードで指定する。(Hex表記で#を省略した形)

 

色々試してはいたものの、<webfeeds:related><webfeeds:logo><webfeeds:accentColor>やその他可能性のありそうなコードを追加してみたが、Feedly上の表示に何も変化がないので、もしかすると現在はアナリティクス(<webfeeds:analytics ..... >)以外は、サポートされていないのかもしれない。

 

MEMO

ワンポイント

「全文表示向け」の情報。記事内の画像のどれか一つに、webfeedsFeaturedVisualというclassをつけると、それがFeedly内でオススメの画像として選択されるようになる。

 

カスタマイズ後のRSSファイルを読み込ませる

カスタマイズ後のfeed-rss2.phpを読み込ませるように、function.phpに以下のコードを記述。


//テーマ内からRSSファイルを読み込む
remove_filter('do_feed_rss2', 'do_feed_rss2', 10);
function customize_feed_rss2(){
$template_file = '/feed-rss2.php';
load_template(get_template_directory() . $template_file);
}
add_action('do_feed_rss2', 'customize_feed_rss2', 10);

 

Feedlyの更新を早める

新規記事を投稿したあとに、Feedlyを確認するとなかなか新規投稿の情報があがってこない経験はあると思う。Feedlyのクローラがウェブサイトに新規記事があることを確認してから、更新情報が上がる。つまりFeedlyのクローラが確認しないと更新されないのだが、経験上、それまでに1時間程度要することがある。

 

改善方法は、こちらからウェブサイトに新規投稿があることを知らせることだ。そのために、Pubsubhubbub(パブサブハバブ)という技術を使う。

 

WordPressでは、Pubsubhubbub用のプラグインが用意されているので、これを導入することで、Feedlyの更新を早めることができる。

PuSHPress

JetPackやWordPress.com、Akismetを提供するAutomatticが作成したプラグイン。

https://ja.wordpress.org/plugins/pushpress/

 

WebSub / Pubsubhubbub

最新バージョンに対応しているので、現時点(2018年10月)では多分こちらがおすすめ。

https://ja.wordpress.org/plugins/wp-pubsubhubbub/

 

こちらの記事もどうぞ

RSS2.0の基礎知識や詳細はこちらから。

 

RSSリーダーのGoogleアナリティクス設定についてはこちらから。

 

 

 

.