【WordPress】RSSフィードの投稿者名を非表示にする方法

【WordPress】RSSフィードの投稿者名を非表示にする方法 WordPress

WordPressのRSSフィードにはデフォルトで投稿者名が表示されます。しかし、場合によっては投稿者名を非表示にしたいこともあるでしょう。この記事では、WordPressのコアファイルには一切手を加えずに、the_authorフィルターだけでRSSフィードから投稿者名を非表示にする方法を紹介します。

スポンサーリンク

RSSフィードに投稿者名が表示される仕組み

WordPressのRSSフィード(wp-includes/feed-rss2.php)では、投稿者名が<dc:creator>タグを通じて出力されます。このファイルには以下のコードが含まれており、投稿者名がRSSフィードに埋め込まれます。

wp-includes/feed-rss2.php(WordPressコアファイルの一部・参考)
<dc:creator><![CDATA[<?php the_author(); ?>]]></dc:creator>

the_author()は内部でapply_filters('the_author', get_the_author())を実行しています。つまり、このファイル自体を編集しなくても、the_authorフィルターに割り込むだけでRSSフィード上の投稿者名を変更・非表示にできます。

wp-includes配下のコアファイルは絶対に直接編集しない
feed-rss2.phpのようなWordPressコアファイルは、WordPress本体をアップデートするたびに元のファイルで上書きされます。直接編集した内容は次のアップデートで跡形もなく消え、特に自動更新が有効なサイトでは気づかないうちに設定が元に戻ってしまいます。コアファイルの直接編集は避け、functions.phpでのフィルター登録など、アップデートの影響を受けない方法で実装してください。

the_authorフィルターで投稿者名を非表示にする

子テーマのfunctions.phpに以下のコードを追加します。is_feed()でRSSフィード表示時かどうかを判定しているため、通常のページ表示では投稿者名はそのまま表示され、RSSフィードでのみ非表示になります。

functions.php:RSSフィードでのみ投稿者名を非表示にする
// RSSフィードでのみ投稿者名を非表示にする
add_filter('the_author', function ($author) {
    return is_feed() ? '' : $author;
});

この方法なら、WordPressのアップデートやテーマの切り替えの影響を受けず、functions.phpに1箇所追加するだけで済みます。

変更を確認する

コードを追加したら、ブラウザでRSSフィードを開いて変更が適用されているか確認してください。

https://example.com/feed/
(example.com の部分は自身のサイトのドメインに変更してください)

反映が確認できない場合は、キャッシュプラグインやブラウザ・CDNのキャッシュによってRSSフィードが一時的に古い内容のまま表示されている可能性があります。キャッシュをクリアしたうえで再度確認してください。

関連記事

よくある質問(FAQ)

QWordPressのRSSフィードに記事全文を表示するには?
A管理画面の設定>表示設定で「フィードの各投稿に含めるもの」を「全文表示」に変更します。コードで制御する場合はthe_content_feedフィルターを使います。
QRSSフィードに独自のコンテンツを追加するには?
Arss2_item・atom_entryなどのフィードフックにコールバックを追加します。またはthe_excerpt_rssやthe_content_feedフィルターでコンテンツ内に追記する方法もあります。
QRSSフィードから特定のカテゴリーを除外するには?
Apre_get_postsフックでis_feed()を確認し、category__not_inに除外カテゴリーIDを設定します。これにより特定カテゴリーの記事がRSSに含まれなくなります。

まとめ

RSSフィードから投稿者名を非表示にするには、コアファイル(feed-rss2.php)を直接編集するのではなく、the_authorフィルターにis_feed()の条件分岐を組み合わせてfunctions.phpに実装するのが安全で確実な方法です。コアファイルの直接編集はWordPressのアップデートで必ず失われるため避け、フィルター・フックを使った実装を心がけましょう。