Twentyfifteenからテーマ作成-カテゴリごとにページ移動


当サイトはカテゴリーごとに内容が違いすぎるため、ナビゲーションとタグを除き、ページ遷移を同一カテゴリ内に留めようと当初から考えていました。

カテゴリごとにテンプレートを分ければ簡単ですが、できるだけ汎用性のあるカスタマイズ方法にしたかったので、テンプレートを増やさずにカスタマイズすることに。

Twentyfifteenでは、次ページへのリンクを最新の関数で表示しています。
これをカテゴリ別で表示する方法を検討してみました。

Twentyfifteenで次ページへのリンクを表示させている関数はthe_post_navigationです。
これが実装されたのは2014年12月18日にリリースされたWordPressバージョン4.1からで、Twentyfifteenのリリースと同時でした。

そのため、このテーマの作成時は英語のドキュメンテーションしかありませんでした。
そんでもって、今でも日本語ページがありません。 :しょぼーん:

WordPress Code Reference/the_post_navigation (英語)

この関数ひとつだけで次のページも前のページも一気に表示できるので、シンプルなページ遷移であれば、便利な関数だと思います。

nav_link1

でも自分はカテゴリごとにしたいので、どんなパラメータが使えるのかと確認したところ、get_the_post_navigationと同じとのことで参照すると、

get_the_post_navigation ( array $args = array() )

配列1個だけでした。 :・・・:
で、その配列で格納できるのが

$args
(配列) (オプション) デフォルトの変数
‘prev_text’
(文字列) 前ページへのリンクとして表示される。 デフォルト: %title.
‘next_text’
(文字列) 次ページへのリンクとして表示される。 デフォルト: %title.
‘screen_reader_text’
(文字列) スクリーンリーダー用 デフォルト: ‘Post navigation’.
デフォルト値: array()

ん~、汎用性なさそう。だからまだ日本語ページがないんでしょうか。

もっと考えればカテゴリ表示できるのかもしれませんが、そこまでの技術力がないので挫折。
結局、カテゴリ指定できる従来の関数を使用することにしました。

single.phpの下部にある

こいつを、

に入れ替えて同一カテゴリ内でページ遷移するようになりました。

nav_link2

なお、上の画像では文字リンクの色が変わっていますが、これはリンク色を指定していたspanが消えたからです。

the_post_navigationで生成されるタグ

previous_post_linkに修正した後

適宜cssで修正しましょう。
自分は画像も消しちゃいました。