previous / next_post_linkで同カテゴリ記事にリンクする

「今見てるページの前後投稿」を示すページナビゲーションを
全記事共通ではなく同一カテゴリ内にてリンクする方法。
WordPressテンプレートタグ previous_post_link / previous_post_link で
パラメータをセットするだけなんですけど、あまり知られてないようなので
メモがてら書いておきます。

WordPressでカテゴリの前後記事にリンク

previous_post_link / next_post_link カテゴリ内リンク用例

【single.php】
<p>
  <?php if( get_previous_post() ): ?>
    <span class="alignleft"><?php previous_post_link('%link', '&laquo; %title', TRUE); ?></span>
  <?php endif; if( get_next_post() ): ?>
    <span class="alignright"><?php next_post_link('%link', '%title &raquo;', TRUE); ?></span>
  <?php endif; ?>
</p>

必要に応じてクラス設定すれば自由に成形できます。

パラメータ解説

【PHP】
<?php previous_post_link('format', 'link', 'in_same_cat', 'excluded_categories'); ?>

デフォルト値が False である in_same_cat に True をセットしました。
get_the_category() とかやらなくても良きに計らってくれる憎い奴です。
WordPress3.3以降では excluded_categories にカテゴリIDを放り込むと
特定のカテゴリをループから除外できますよ。(^^

なお、この previous_post_link / next_post_link ですけど
バージョンWordPress3.8より地味な仕様変更があったようです。
Codexの英語版見てたら知らんうちに taxonomy パラメータが増ーえーてーたー。

ちなみに taxonomy のデフォルト値は ‘category’、
その流れで in_same_cat も in_same_term に呼称が変わってました。

そうです。要するに in_same_term に True が立ってると
カスタムタクソノミーでもいける
とのこと。Oh便利~。