先週から今日にかけて、Wordpressのメインクエリについて
ご飯も喉を通らない程、ずっと悩んでいました(笑)
さっき解決したのですが、原因は本当に単純なことでした。
その症例というのが、メインクエリでWP-Pagenaviを使用して、
ページングを実装していた時の話です。
Blogという固定ページを用意して、メインクエリを書き込みました。
<?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> //内容 <?php endwhile; ?> <?php else : ?> <div class="post"> <h2>記事が見つかりません</h2> <p>記事が存在しないときのテキスト</p> </div> <?php endif; ?> <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
こんな感じで記述していたのですが、
何故かカテゴリアーカイブの時に、2ページ目以降が404エラーになるという、
事象が発生!
正直焦りました。
また、そこからが長かった…。
まず疑ったのが、query_postです。
query_postで一覧を取得していたので、
下記のブログを参考にさせて頂きました。
query_postsを捨てよ、pre_get_postsを使おう【追記あり】【報告あり】
query_postは、色々とページング時にエラーとかが発生するらしいので、
pre_get_postsをfunction.phpに書き込んでみたりと、やってみたのですが、
どうにもこうにもエラーが止まらない(笑)
さて、前置きが長くなりましたが、
原因はどこにあったかというと、function.phpにありました。
以前カスタマイズした時に、アーカイブの時の指定がゴニョゴニョと書き込んであったことを
すっかり忘れていました。
原因はそいつだったんです。(怒)
自業自得というか、拍子抜けですねー。
そんな身近な所にあったんです。
コードは間違っていないのに、どうしても分からないエラーがある時は、
以外と身近なfunction.phpさんに原因があるかも知れませんよ。