【スポンサーリンク】

サイトを複製されたくないのでRSSフィードを非公開にした[WordPress]

サイトを複製されたくないのでRSSフィードを非公開にした[WordPress]
  • 複製サイトが情報源として「RSSフィード」を使っている事例に遭遇しました1
  • そこで、WordPressサイトのRSSフィードを無効にすることにしました。
  • functions.phpでRSSフィードを生成する処理をフックで置き換えます。
\記事が役に立ったらシェアしてね/
【スポンサーリンク】

1. WordPressサイトのRSSフィードを置き換えるコード

公開されているコードを参考に、RSSフィードを無効化することにしました23

function disable_our_feeds() {
    wp_die( __('<strong>Error:</strong> No RSS Feed Available, Please visit our <a href="'. get_bloginfo('url') .'" class="broken_link" >homepage</a>.') );
}
 
add_action('do_feed', 'disable_our_feeds', 1);
add_action('do_feed_rdf', 'disable_our_feeds', 1);
add_action('do_feed_rss', 'disable_our_feeds', 1);
add_action('do_feed_rss2', 'disable_our_feeds', 1);
add_action('do_feed_atom', 'disable_our_feeds', 1);
 
remove_action('wp_head', 'rsd_link');  
remove_action('wp_head', 'feed_links_extra', 3);  

1-1. コードの意味

このコードでは、フィード生成アクションを「フック」して非アクティブ化しています。

具体的には以下のアクションを、エラー表示の処理(wp_die)に変更しています。

  • do_feed: 全般的なフィード
  • do_feed_rdf: RDFフィード
  • do_feed_rss: RSSフィード
  • do_feed_rss2: RSS2フィード
  • do_feed_atom: Atomフィード

また、HTMLのヘッダーからRSDリンク(rsd_link)と追加のフィードリンク(feed_links_extra )を取り除いています。

  • rsd_linkは、RSD(Really Simple Discovery)リンクを出力する関数です。
    RSDは、ブログの外部からブログを編集するためのプロトコルです。
  • feed_links_extraは、追加のフィードリンク(カテゴリやタグなど)を出力する関数です。

2. WordPressのRSSフィード

通常、WordPressサイトは、サイト情報や記事情報などのRSSフィードが公開されています。

参考:「RSS」とは?
参考:「RSS」とは?

多くの場合は、「サイトURL/feed/」でアクセスできます。

たとえば、

このサイトでは「https://chiilabo.com/feed/」。

フィードのURLがわからないときは、「RSSフィード取得・検出ツール – BeRSS.com」にサイトのURLを入れれば調べられます。

2-1. WordPressのフィード設定

RSSフィードについては、WordPressの「設定」ー「表示設定」から管理できます。

WordPressのフィード設定
  • RSS/Atom フィードで表示する最新の投稿数
  • フィードの各投稿に含める内容(全文を表示/抜粋)

を設定できます。

WordPressのフィード設定

ただし、表示投稿数を 0 にはできません。

3. functions.phpにコードを追加する

ということで、RSSフィードを公開したくない場合は、functions.php に先ほどのPHPコードを追加する必要があるわけです。

コードを追加してからフィードURLにアクセスすると、ちゃんとエラー表示に変わりました。

functions.phpにコードを追加する

4. 【追記】外部への発信とのバランス

ところが、サイト設定を確認していると問題があることに気づきました。

PinterestGoogleニュースなど、外部サイトへの情報発信でもRSSフィードを利用していたからです。

【追記】外部への発信とのバランス

複製サイトによる情報収集を避けるか、外部サイトとの連携を重視するか、どちらを取ろうか迷っています。

こちらもどうぞ。
[Cocoon] 「SNSシェア」ボタンをショートコードで表示できるようにした
[Cocoon] 「SNSシェア」ボタンをショートコードで表示できるようにした
記事内で、以下のショートコードを入力することで、好きな位置にSNSシェアボタンを出せるようにしたいと思います。 [sns_share_buttons] できたコード(functions.php)はこちら。 /** CocoonのSNSシェアボタンを表示するショートコード 2024-02-18 */ add_shortcode( 'sns_share_buttons', 'wrap_get_template_sns_share' ); if ( ! function_exist...

[Cocoon] カルーセル使用時のCLSを改善するために高さを計算した(calc, vw)
[Cocoon] カルーセル使用時のCLSを改善するために高さを計算した(calc, vw)
PageSpeed Insightsで計測したときに、CLS(Cumulative Layout Shift)が「0.33(不良)」になるのが気になっていました。 主な原因は、トップページで表示しているカルーセルです。 CSSの calc() を使って、画面の幅からカルーセルの高さを計算することで、CLSを 0 に改善できました。 カルーセルがCLSに悪影響している CLS(画面ズレ)が起こるのは、トップページにある「カルーセル」が原因です。確かに、サイトの表示を見てみると、...

[Cocoon] 各見出し後に「目次に戻る」リンクを追加した(functions.php)
[Cocoon] 各見出し後に「目次に戻る」リンクを追加した(functions.php)
ブログの中でもっともよくクリックされるのは、「目次」だそうです。 各セクションに Cocoonの目次に対応した「戻る」ボタンを設置しました。 参考サイトを元に、自分のブログに合うように一部修正しました。 確かに、目次からサッと読みたいところを確認できるサイトは、とても便利ですよね。 目次に戻るリンクを挿入するコード functions.phpに追加します。 /** 自動で目次に戻るリンクを挿入 */ add_filter('the_content', function($co...

「RSS」とは?
「RSS」とは?
「RSS」は、ウェブサイトの更新情報を、自動的に受け取るための仕組みです。ウェブサイトの更新情報をまとめた「RSSフィード」というXMLファイルを公開することで、更新情報を配信します。「RSSリーダー」という対応アプリを使うと、複数のサイトを登録して更新情報をまとめて受け取れるので便利です。

(補足)

  1. Google検索結果に複製サイトが出てきた(rssing.com) – スマホ教室ちいラボ
  2. WordPress フィードを無効にする – WP エンジニア
  3. WordPressでRSS フィードを無効にする | Joomla!,Wordpressでサイトを構築するためのヒント
QRコードを読み込むと、関連記事を確認できます。

サイトを複製されたくないのでRSSフィードを非公開にした[WordPress]
【スポンサーリンク】
タイトルとURLをコピーしました