府中や不動産のちょっとした話


wordpress3.4に更新 ページ送りエラー

2012年07月05日 00:29

ようやく解決、 is_main_query 関数と pre_get_postsで直りました。
http://gatespace.jp/2012/09/10/modify_main_queries/
http://notnil-creative.com/blog/archives/1688

2013/05/02 追記

 

不動産とwordpress 関係ないのですが他にブログを持っていないため間借りしています。

wordpress3.4にアップグレード後から不具合が発生しました。
ページ送りエラー <==  ぐぐってみるとカスタムポストでよくある不具合現象らしい。
当社での現象:ブログトップページ (http://www.tama-h.co.jp/bukken/)の2ページ目以降のページ送りで不具合。
index.phpではquery_postsで件数指定とページ指定してカスタムポストの一覧を表示させています。

いままで404.phpが無かったためリダイレクトされすぐに気付きませんでした。(リダイレクトされるとちゃんと/page/2/が表示されるため)
3.1.4から3.4にアップグレードした際に、厳密に言うとこの間のバージョンでもエラーとなっていた可能性があるが、前述の通り404.phpが無かったため分からなかった。

しかし・・・。ほぼ同一のテスト環境のwordpressをバージョン3.4にアップグレードしたところ、こちらではエラーが発生しなかった。
データーベース以外、wp-content、プラグイン、管理画面の設定を確認するが違いが分からなかった。

これではどちらが犯人だか分からないので別のデータベーステーブル接頭辞で新規にwordpress3.3.2をインストールしました。
こちらでは3.3.2ではエラーにならず。3.4にバージョンアップした際エラーとなった。
犯人はバージョンアップだと思うが、テスト環境のwordpress3.4でエラーにならないのは何故か?…

試行錯誤の後、エラーにならなかった理由はカスタム投稿ではない通常の投稿が2件公開されていたからでした。
(本番環境はカスタム投稿のみの使用で、通常の投稿が0件であったためエラー。)
2ページ目までのページ送りはOK。3ページ目はダメでした。そこで通常投稿を3件にすると3ページ目も大丈夫でした。4ページ目を表示するには4件の通常投稿が必要ということらしい。
ただし、他サイトで紹介されているページングエラー回避策:「表示設定」で件数を1件にする必要があった。

訳が分からないが、これで少なくともバージョン3.4ではページングエラーが発生すると判明しました。
最悪データベースのお引越しを考えていたのでひとまず一安心。
無駄な投稿を公開したくないという理由とコード記述の仕方いかんで回避できると思い、またまた試行錯誤したが分からずじまい。
結局、通常投稿とカスタムがなんか変なことになっているぐらいしか分からなかった。

■今回、いろいろなサイトで紹介されている回避策のうち下記の方法を試しましたが当社の環境では直りませんでした。

Custom Post Type UI

http://petitec.com/2010/11/customposttype-using-paginatio/

はじめからこれを使って管理していなとダメそうなので断念。

 

Custom Post Type Category Pagination Fix

flush_rewrite_rules( false );

http://sygnas.jp/2012/04/02/ からのリンクサイトに記事。

 

苦肉の策として、通常投稿をページ分 公開。通常投稿はメタタグでnoindex,nofollow指定しインデックスさせない。

表示設定:1でターム一覧が1件づつになってしまったので、ターム名一覧ページやアーカイブページでもquery_postsで件数とページ送り(又は$query_string)を指定しました。

ページングエラーの恒久的解決を願うばかりです。wordpressがんば!!。

追記:3.4.1でもページングエラーでした。

 



コメントは受け付けていません。

ブログランキングへ

  • このエントリーをはてなブックマークに追加
  • Yahoo!ブックマーク

スタッフブログRSSスタッフブログRSS

ページトップへ