WordPressでfeed(RSSやATOM)のauthorを消す・変更する方法。
WordPressでRSS feedやatom feedが出力できるが、IEなどで整形してみてみるとauthorにWordPressのユーザー名が表示されている。
<entry>
<author>
<name>admin</name>
<uri>http://hogehoge</uri>
</author>
ここに編集者のユーザー名を表示したくない。 どうやら、WordPressのwp-includesフォルダに存在するfeedのテンプレートを編集し、authorを編集すれば良いようだ。 feed-atom.php feed-atom-comments.php feed-rdf.php feed-rss.php feed-rss2.php feed-rss2-comments.php ただ、wp-includesフォルダのファイルを修正したくない。 feed-atom.phpを見てると、the\_author the\_author_meta あたりをfilterしてあげれば良さそう。
<entry>
<author>
<name><?php the_author() ?></name>
<?php $author_url = get_the_author_meta('url'); if ( !empty($author_url) ) : ?>
<uri><?php the_author_meta('url')?></uri>
<?php endif;
/**
* Fires at the end of each Atom feed author entry.
*
* @since 3.2.0
*/
do_action( 'atom_author' );
?>
</author> ということで、テンプレートフォルダのfunctions.phpに以下を追加。
function delete_feed_author($author) {
if(is_feed()){
$author=get_bloginfo( 'name' ) ;
}
return $author;
}
add_filter( 'the_author', 'delete_feed_author');
function delete_feed_author_url( $author_meta, $user_id ) {
if(is_feed()){
$author_meta=get_bloginfo( 'url' ) ;
}
return $author_meta;
}
add_filter( 'the_author_url', 'delete_feed_author_url');
これでauthorとuriを変更できた。