RSSリーダー「feedly」の登録ボタンをワードプレスに設置しました

WordPressでブログを始めてもうすぐ1年。今更ですが、RSSボタンと「feedly」の登録ボタンを設置しました。

せっかくなので、躓いた点を中心に作業完了までを書いてみたいと思います。

RSSフィードのURLが分からない

はい、初めの一歩から躓きました。RSSフィードを利用したことが全くなかったため、しょっぱなから足止めを食らいました。というか、RSSフィード用のURLがあることすら知りませんでした。さすがにこれは恥ずかしいですかね…。

聞ける人がいないためGoogle先生に尋ねてみたところ、優しく教えてくれました。全文配信を予定している場合、迷ったらアドレスの最後に?feed=rss2を付ければOKとのことでした。RSSに関しては全くの無知だったため、とりあえず試してみることに。

おお、何か表示されたぞ。ん?でもなんかおかしい。

URLを入力してもエラーが出る

RSSのエラーメッセージ

アカン。直感的にそう思わせる背景色。

落ち着いて調べてみると、functions.phpの先頭や末尾に無駄な空白や改行がある場合、このようなエラーが出てしまうとのことでした。

さっそく管理画面からfunctions.phpを開いてみます。

functions.phpに無駄な改行がいっぱい

これはひどい。15行も無駄なスペースがあります。道理でエラーも出るわけですね。急いで修正しました。

これで大丈夫かと思いきや、まだエラーは消えません。試しにキャッシュの削除もしてみたのですが、やはりうまくいきません。

これはどうしたものかとググっていると、次の記事に出会いました。

WordPressのRSSエラー(XMLパースエラー)の対処法 – kngy.net

この記事によると、wp-includes/feed-rss2.phpwp-includes/feed-rss2-comments.phpというファイルの2行目にob_end_clean();を追加すると解決するかもしれないとのこと。もちろん試してみます。

<?php~
↓こうする
<?php ob_end_clean();~

僕の場合、この作業によってRSSフィードが無事表示されるようになりました。

アイキャッチ画像を表示させる

あー良かったと思ったのも束の間。RSSフィードのURLページを見てみると、アイキャッチ画像が表示されていないことに気付きました。どうやら、何も設定していなければ表示されない仕様のようです。

しかし、当ブログではアイキャッチ画像を利用しているので、RSSフィードにもぜひ反映させたいところ。

このアイキャッチ画像の表示に関しては、プラグインを利用することも考えたのですが、今回はfunctions.phpに以下の記述をするという方法をとりました。

// RSSフィードにアイキャッチ画像を表示
function rss_thumbnail($content) {
 global $post;
 if (has_post_thumbnail($post->ID)) {
 $content = get_the_post_thumbnail($post->ID,'normal_thumb') . $content;
 }
 return $content;
}
add_filter( 'the_excerpt_rss', 'rss_thumbnail');
add_filter( 'the_content_feed', 'rss_thumbnail');

5行目のnormal_thumbですが、これは個人的にfunctions.phpに追記してサイズを割り当てているものになります。

add_image_size( 'normal_thumb', 642, 336, true ); // アイキャッチ画像

現在使っているテーマに合わせてlargemedium、またはarray(150,150)などとサイズ指定すると良いかと思います。

タイトルが二重に表示される

アイキャッチ画像も表示されるようになったので、下のリンク先から「feedly」の登録ボタンを作ることにしました。

feedly. your news. delivered.

ボタン作成から設置まではとても簡単です。

  1. ボタンのデザインを選ぶ
  2. RSSフィードのURLを入力する
  3. ボタンをクリックしてRSSフィードが直接「feedly」で開かれるかを確認する
  4. 表示されたhtmlソースコードをブログの任意の場所に貼り付ける

たったこれだけの作業で完了します。簡単な流れではありますが、僕は3番目の「feedly」での表示を確認したところで躓きました。次の画像のようにブログタイトルが二重に表示されてしまったのです。

この修正に関しては、[WP] RSSフィードのタイトルが2重になる問題 | 最近,気になったこと…を参考にしました。

この記事によると、以下のファイルのコードをいじる必要があるようです。

wp-include/feed-atom.php
wp-include/feed-rdf.php
wp-include/feed-rss.php
wp-include/feed-rss2.php

これらのファイルを開くと、

<title>
<?php bloginfo_rss('name'); wp_title_rss(); ?>
</title>

という記述があるのですが、この中のwp_title_rss();という部分を削除します。

削除後「feedly」での表示を確認したところ、それでもやはりブログ名が二重になってしまっていたのですが、キャッシュを削除した後に試したら重複せずに表示されていました。

盗用防止プラグインの導入

最近ではRSSを利用した記事の盗用(=丸々コピペ)が珍しくないらしいので、盗用対策もしておくことにしました。

今回利用したのは、「RSS Footer」というプラグインです。このプラグインを使うと、記事の最初もしくは最後に署名やコメントを挿入することが出来ます。

当ブログでは、次の画像のように設定しました。

RSSFooterの設定画面

その結果、RSSフィードの記事の最後に次のような表示がされるようになりました。

RSSフィードの末尾にクレジット

これで完全に盗用を防げるというわけではありませんが、何もしないよりはマシでしょう。

導入の際は、WordPressのダッシュボード>プラグイン>新規追加で「RSS footer」と検索するとヒットするので、そこからインストールして有効化しましょう。

導入から設定までに関しては、RSS FooterでRSSに自サイトへのリンクと署名を埋め込む設定方法 – SEOのホワイトハットジャパンが参考になります。

2015年11月10日追記:このプラグインは開発終了となり、製作者は「Yoast SEO」というプラグインの利用を薦めています。「Yoast SEO」で同機能を引き続き利用する方法については、NaifixさんのRSS Footerが使えなくなったのでWordPress SEO by Yoastに切り替えようという記事がとても分かりやすいです。

さてさて、躓いたところもありましたが、なんとか「Feedly」の登録ボタンを設置することができました。これから設置を考えている方にとって、少しでも参考になることがあったなら幸いです。

この記事を書いた人

エヌジマ

エヌジマ

三十路の唐変木。学校など特定の社会的状況で話せなくなる場面緘黙(ばめんかんもく)を過去に経験。現在も雑談は大の苦手で、時に緘黙の症状が出ることも。このブログでは自分の日常や「紹介したい!」と思ったものを中心にいろいろ書いています。詳しくは当ブログについてをご覧ください。また、お問い合わせはこちらのフォームからどうぞ。