WordPress のフィードをカスタマイズして more タグまでの内容を出力し、元記事へのリンクを追加する方法
WordPress の RSS や Atom のフィード情報の設定は、「全文を表示」または「抜粋のみを表示」の二択しかありません。
以前、RSS からブログ記事が丸パクリされる被害に会い、それから RSS の配信を見直しました。全文配信はしたくないけど、特定の文字数で切られてしまう中途半端な抜粋部分だけの配信もしたくない。可能であれば、自分で設定できる more タグまでの内容を出力したい。
そこで調べてみると function.php に処理を追加することで、more タグまでの内容で配信できる方法が紹介されていました。
WordPress:RSSフィードにmoreタグを入れた箇所までの内容だけを出力
記事内の画像の取り扱いや、アイキャッチ画像を差し込む方法など、単に more タグまでの出力に限らず、一歩進んだ内容となっていてとても参考になりました。
more タグまでの内容 + 元記事へのリンクを RSS へ出力
参考サイトは more タグまでの内容でしたが、更に元記事へのリンクを追加すれば、僕が求めている RSS の配信内容になるため少し手を加えました。リンクが必要な理由としては、再び RSS から丸ごとパクられた際に、元記事のリンクを入れておけば気付きのきっかけになるだろうと考えたためです。
また、予め続きを読むためのリンクを入れることで、RSS の配信内容が途中までであることを明示的に理解してもらう意図もあります。
function.php への追加ソース
function my_content_feeds($content) { global $post, $more; $more = false; $content = apply_filters('the_content', get_the_content('')); $content = str_replace(']]>', ']]>', $content); // 元記事へのリンク追加--ここから $content = $content . '<div><a href="' . get_permalink($post->ID) . '">「 ' . get_the_title($post->ID) . ' 」の続きを読む</a></div>'; // 元記事へのリンク追加--ここまで return $content; } add_filter('the_excerpt_rss', 'my_content_feeds'); add_filter('the_content_feed', 'my_content_feeds');
7行目の処理を追加しています。ページ ID に対するタイトルを取得し、パーマリンクの URL を取得してアンカータグを設定しています。RSS 上には、各投稿の末尾に次のようなリンクが追加されるイメージとなります。
「WordPress の RSS をカスタマイズして more タグまでの内容を出力し、元記事へのリンクを追加する方法」の続きを読む
RSS リーダーを使っている人は、リーダー上で全文読みたい人も多いでしょう。一方ブログ運営者は、RSS リーダー上から自身のサイトまでアクセスしてくれることを求めます。
この点は需要と供給のバランスを取るのがとても難しいです。ただ、全文掲載はブログ運営者にとってデメリットの方が大きいです。以前にあった全文パクられるリスクも高くなる上、リーダーからのサイトアクセスの頻度も減ります。
結局のところ、前文だけで続きが読みたいか否かを判断してもらえるよう、導入文をきちんと書くことが、最もバランスが取れた方法ではないかと判断しました。
上記の通り、more タグまで出力できるようにすれば、RSS に載せる導入文も自身で調整できます。Win – Win の関係とまで言いませんが、読者にとっても運営者にとってもマイナス要素が限りなく小さくなる方法かと思います。
WodPress の抜粋では中途半端な情報量で切れてしまうので、自身で RSS に載せる範囲を調整できるこちらの方法は、運営者にとって大きな利点です。ぜひ導入をご検討ください。