WordPressで更新時間順にRSSを出力する方法

  • 投稿 : 2013-05-27
投稿時間でなくて、更新時間順にRSSが数件出力されるとイイナと思って作成しました。
Bloggerの時は、出力できたので・・・。

RSSを別のPHPで出力する方式にしたので、この部分を書き換えれば、好きなRSSを出力することが可能だと思います。

ブログパーツなどに渡すときのRSSとかにも使用できますので、便利に使えるかも

更新時間順にRSSを出力する

<?php require '../../wp-blog-header.php'; ?>
<?php /* RSSを更新順に出力 */ ?>
<?php echo "<?xml version='1.0' encoding='UTF-8' ?>\n"; ?>
<rss version="2.0">
	<channel>
		<title><?php echo bloginfo('name'); ?></title>
		<link><?php echo bloginfo('url'); ?></link>
		<description></description>
		<language>ja</language>
<?php query_posts("&orderby=modified&posts_per_page=25"); ?>
<?php while (have_posts()) : the_post(); ?>
<item>
<title><?php the_title(); ?></title>
<guid isPermaLink="false"></guid>
<link><?php the_permalink(); ?></link>
<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
<description><![CDATA[
<?php the_excerpt(); ?>
]]></description>
</item>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
	</channel>
</rss>
rss-updated.phpというファイル名で上記の内容で作成してください。
/wp-content/uploads にそのファイルを置きます。

以下のような感じでアクセスすると、RSSが出力されています。
http://blog.example.com/wp-content/uploads/rss-updated.php

更新時間順に25件出力されているかと思います。

改造ポイント

・場所はどこにおいてもOKですが、1行目のwp-blog-header.phpのパスだけは気を付けて変更してくださいね。
・ファイル名も自由に変更してください
・RSS2.0のフォーマットに沿って、もう少し厳密なものに変えるのもよいかと思います。
・件数の指定は、posts_per_page=25の25の部分を変更してください

補足

PHP内でWordPressのタグを使えるようにする

「index.html」の1行目に下記を追加することで、静的ファイルでもwpタグを実行できるようになります。
index.html
<?php require './wp/wp-blog-header.php'; ?>
WordPressと静的ファイルを共存させて部分CMS化する | webOpixel

wp-blog-header.phpをインクルードするだけで、PHPのなかでWPのタグ(関数)が使えるようになります

記事を更新時間順に取得する

WordPressの新着記事を更新時間順に並べ替える方法
WordPressの投稿記事を、最新の更新時間順に表示したい | WordPress(ワードプレス)とプラグイン

RSS2.0の仕様

http://phpjavascriptroom.com/?t=topic&p=rss_format
http://memorva.jp/memo/api/rss.php+
http://sasuke.main.jp/rss20.html
http://weble.org/2009/11/08/rss2-2
スポンサーリンク