同一カテゴリー内で前後ナビゲーション

標準のテーマのTwentyTenでは、各投稿ページ内に前後の投稿へ移動できるナビゲーションが付いています。ただし標準では順序がカテゴリーは関係なく全ての投稿を日付順に並べた状態になっています。

このようなルールはカテゴリーを明示的に使っているサイトでは、ちょっと違和感があります。そこで、同一カテゴリー内で前後に移動できるようにリンクを変更するようにしました。

例によって子テーマのfunctions.php内で何とかしたかったんですが、面倒になってきたのでテーマのファイルをそのまま書き換えてしまいます。

loop-single.phpを自作の子テーマにコピーし、previous_post_link関数とnext_post_link関数が使われている部分をこのように書き換えます。

<?php previous_post_link( '%link', '<span class="meta-nav">' .
 _x( '&larr;', 'Previous post link', 'twentyten' ) .
 '</span> %title', true ); ?>
<?php next_post_link( '%link', '%title <span class="meta-nav">' .
 _x( '&rarr;', 'Next post link', 'twentyten' ) .
 '</span>', true ); ?>

要するに、第三引数にtrueを加えるだけです。

これらの関数の第三引数の説明は以下のようになっています。

bool $in_same_cat: Optional. Whether link should be in same category.

そのうち、functions.phpの中だけで完結できるようにしたいな…