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を変更できた。