【RSS】wordpressで出力されるRSSを変更する

in 2019年12月24日

wordrpessでrssを出力するのは簡単です。

ホームページのurlの後ろに

/feed/

をつけてアクセスするだけでRSSを取得出来ます。

このサイトのRSSなら

https://creative-studio.jp/wordpress/feed

こうなります。

 

wordrpessで出力されるRSSですがデフォルトではRSS2.0になります。

最近の仕事で

「wordprssのRSSの出力内容を変更したい」

との依頼がありました。

最近はあまりRSSは聞かないですが、取得している人はいるようです。

 

まずwordrpssのrssはどこで制御しているのか?

それは

/wp-includes/feed-rss2.php

にあります。

この

feed-rss2.php

がRSSのテンプレートです。

このファイルを変更すれば、RSSの出力を変える事が出来ます。

このテンプレートファイルをプラグイン内のファイルを読み込みたい場合は

add_action( ‘do_feed_rss2’, ‘do_feed_rss2_custum’ );
function do_feed_rss2_custum() {
load_template( ABSPATH . ‘wp-content/plugins/sample_plugin/rss/feed-rss2.php‘ );
}

 

のように書きます。

元のファイルの

feed-rss2.php

をそのまま持ってきてしまい、中身を変更します。

 

RSSの中身を変更する

では実際にRSSの中身を変更してみます。

RSSのデフォルトテンプレートである

feed-rss2.php

の中に

while ( have_posts() ) :
the_post();
?>
<item>

~~~~~

</item>
<?php endwhile; ?>

 

という箇所があります。

わかると思いますがwhileでループをしています。

ループをしているという事は。。?

そうです、中で

echo $post->ID

すれば投稿IDが取得出来ます。

もう後は煮るなり焼くなり好きに出来ます。

rssの投稿のタイトルを変更しようと思えば、元は

<title><?php the_title_rss(); ?></title>

ですが、このタイトルの横に投稿日時を表示しようと思えば

<title><?php the_title_rss();echo get_post($post->ID)->post_date; ?></title>

これで表示出来ます。