お好み焼きは主食派はい、ごめんください。
ちょっと質問されたけれどもすぐに解決できない割には需要があるなあと思ったのでメモしておきます。誰かプラグインにしませんか。

まず、現状は下記のとおりです。

  • お好み焼きの記事Aがある。
  • 卵焼きの記事Bがある。
  • 記事Aは「おかず」というカテゴリーと「主食」というカテゴリーに登録されている。
  • 記事Bは「おかず」というカテゴリーに登録されている。

そしてこの状態で起こりえる問題があります。

  • 「主食」というカテゴリーから、お好み焼きの記事Aを閲覧した。
  • 次の記事として、卵焼きの記事Bへのリンクが出現。
  • 確かに記事Aは主食でもありおかずでもあるが、「主食」のカテゴリーから来た以上、「おかず」のカテゴリーに属する卵焼きの記事Bへのリンクは許せない。

お好み焼きはそれだけで主食だと思うのに、卵焼きは主食か否か。や、私は主食でもいいんですけどね。

つまり、閲覧元のカテゴリーと同じカテゴリーの前後記事を表示する方法

閲覧元を調べてリンクを出すのはできましたが、そのまた次のページに行くなど、閲覧元のカテゴリーをずっと引き回すのがそのままではできなかったので、Cookie を使いました。

functions.php に下記を追加します。

下の方はフォーラムのkzさんの投稿がすごく参考になりました。

参考:WordPress › フォーラム » next_post_link:特定カテゴリーの除外について

 

そして、single.php のナビゲーション部分を下記のように変更します。位置としては while 〜 endwhile; の中ですね。

ざっくりとした概要

  • カテゴリーページに行くと、表示したカテゴリーIDをブラウザが保存(上書き)します。
  • 個別記事ページに行くと、保存されたカテゴリーIDと同じカテゴリーの前後記事を表示します。
  • ブラウザを閉じたりトップページに行くと、保存したカテゴリーIDは削除され、カテゴリーページを表示しなければ、時系列での前後記事を表示します。

できてしまえば単純でした。