今回は、ワードプレスの投稿下のページネート部分「前のページ」「次のページ」において、違うカテゴリーの記事が表示されないことがあるようでしたので、その解決方法をご紹介します。
目次
この記事を読んでできるようになること
この記事を読むと、投稿テンプレート(single.php)のページネート部分の制御ができるようになります。そのため
- 「前のページ」「次のページ」に表示する記事の条件分岐ができます
- 逆に条件を解除することが出来ます
- 前のページ、次のページのURL取得方法がわかります。
などなどです。該当する場合は読み進めていってくださいね。
違うカテゴリーが表示されない原因
まず、違うカテゴリーが表示されない原因ですが、大体以下の二つに集約されます。
- テーマの編集の[single.php]のget_previous_post(),get_next_post()の引数がおかしい
- テーマの編集の[single.php]previous_post_link(),next_post_link()の引数がおかしい
「引数がおかしい」とはどういうことかというと[get_previous_post()]の()内に入っている文字がおかしいということです。
この二つの関数は、「カテゴリーが一致するかどうか」を指定する部分があるのですが、そこの表記が間違っていたりずれていたりします。
ちなみに、カスタム投稿タイプなどを利用している中級者の方は、[single.php]の部分を自分の状況に当てはめて考えてください。
get_previous_post(),get_next_post()の引数について
まず、get_previous_postやget_next_postですが、これらは
「次の記事があるかどうか」「前の記事があるかどうか」をtrue,falseで判定してくれる関数
です。そのため、if文と一緒に使われることが多いです。例えば
1 2 3 |
if(get_previous_post()){ } |
といった具合です。
ちなみに、このget_previous_postやget_next_postはページネート部分の直前に使うことが多いです。「”もし前の記事がある”なら、前の記事へのリンクを表示する」といった感じですね。
カテゴリーを絞る場合と絞らない場合で、()の中に入れる文字が異なります。
違うカテゴリーも表示する場合(空欄の場合もこっち)
1 2 |
if(get_previous_post()) if(get_previous_post(false)) |
この上のどちらかにした場合、違うカテゴリーでも表示できます。()内が空欄か、「false」となっている場合です。
同じカテゴリーのみに絞る場合
1 |
if(get_previous_post(true)) |
()内をtrueとすると、カテゴリーの絞り込みを行います。(現在表示している投稿と同じカテゴリーを取得)
previous_post_link(),next_post_link()の引数について
次は、実際にリンクを表示することになるprevious_post_link(),next_post_link()といった関数です。
こちらにもカテゴリーの絞り込みの引数が存在するので、注意が必要です。(ちなみに、僕はここを特定するのに1時間程度要しました。)
1 |
previous_post_link('%link',%title',TRUE); |
例えば、上記のような記述になっていると思います。この場合
- [%link]→リンク文字列のフォーマット。%link部分に二番目の引数が置き換えられる(あまり気にしなくていい)
- [%title]→タイトルの表示方法のこと。リンク文字列の%link部分に置き換えられる
- [TRUE]→カテゴリーの絞り込み。同じカテゴリーのみの場合は「TRUE or true」。別カテゴリーを含む場合は「FALSE or false」(大文字小文字はどちらでもいい)
となっています。そのため、ここがTRUEになっていると違うカテゴリーの場合は表示されません。
違うカテゴリーを表示したい

今回、上記のようなテンプレートに遭遇しました。特定するまで大変だった理由は
[get_previous_post()]は引数なしでデフォルトで別カテゴリーを認識してtrue判定
→previous_post_linkは同じカテゴリーの場合のみ表示という引数が入っている
という状態のため、僕もどこで分岐されているのかがわからずに苦戦しました。今となってはすぐわかりますが。
「2つの関数で同じような引数指定させないでよ!」と思いました。「get_previous_post()」に強制的に合わせてよって。
さらには、「テーマファイルの作成者、もっと頑張れ!」とも思いました。でもまあ、こういうこともありますよね。仕方ないです。
今回は、「ワードプレス記事下の「次のページ」「前のページ」に違うカテゴリーの記事が表示されない」について解説しました。参考になれば幸いです。
