はてなブックマークにみる人気記事をブログに追加してみた

はてブへのリンクを張るだけだと見てくれない気がしたので、リストにしてみました。blog.zuzara.comの人気エントリー by はてなブックマーク。各記事のページ下部に表示しています。

RSSを読み込んでリストにする、という関数が何気にWordPressには用意されていました。wp-include/rss-functions.phpのget_rssです。でも後述しますがバグあり(^^;

function get_rss ($uri, $num = 5)

中身はMagpie RSS(PHP RSS Parser)で、キャッシュもしてくれます。theme内のファイルから呼び出すときはこんな感じ?

define('MAGPIE_CACHE_DIR', ABSPATH . 'wp-content/cache');
define('MAGPIE_CACHE_AGE', 60*60*24); // one day
require_once (ABSPATH . WPINC . '/rss-functions.php');
get_rss('http://b.hatena.ne.jp/entrylist?mode=rss&url=http%3A%2F%2Fblog.zuzara.com&sort=count&threshold=5', 8 ); ?>

この関数、WordPress内では使われていないのでなぜあるのか謎です。

で、このget_rssを使おうと思ったらバグが。。
バグレポートの仕方がよくわからなかったのですが、ユーザ登録してtracにticket発行してみました。(WordPressの2.0.6がつい先ほどリリースされたようですが、マイナー過ぎるバグなせいか直ってません)
#3527 (wp-include/rss-functions.php function get_rss has a bug) – WordPress Trac – Trac

単純な変数名の記述ミスです。あと日本語の場合、htmlentitiesを使うと化けるのでそこも修正する必要あり。というわけで、get_rssの中で呼び出しているfetch_rssを直接使った方がいいような気がします。。
fetch_rssはwp-admin/index.phpのDashboardで使われており、ドキュメントもあります。
Function Reference/fetch rss « WordPress Codex

This entry was posted in いじる. Bookmark the permalink. Both comments and trackbacks are currently closed.

Page optimized by WP Minify WordPress Plugin