コードを疑うのをやめて、function.phpを疑ってみることにした。

先週から今日にかけて、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さんに原因があるかも知れませんよ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です