WordPress3.1から cat --> category_name になったため、標準ではcategory_name --> cat変換されているがWPMLではそ のあたりをしないので、wp-includes/query.phpに正しいデータが送られてな いようだ。 HP Warning: reset() expects parameter 1 to be array, null given in /path..../query.php on line 2890, というエラーが出る。多くのサイトでこのエラーがでているようだ。[暫定対処法]
wp-includes/taxonomy.php を改変し、URLに「cat=ID番号」を追加する。 function get_term_linkにおいて 1.2846行: $termlink = "?$t->query_var=$slug"; を下記に変更 $termlink = "?$t->query_var=$slug".'&cat='.$term->term_id; 2.2849行: $termlink = "?taxonomy=$taxonomy&term=$slug"; を下記に変更 $termlink = "?taxonomy=$taxonomy&term=$slug" .'&cat='.$term->term_id;
何らかのプラグインと競合している可能性があります。私の方では、「MEE News」プラグインを有効にしていてこの問題に遭遇しました。
本問題は最終的に少しMee NewsプラグインのPHPを変更(2011.04.14 修正)
誤 $_POST['_wpcf7'] != 1 正 $_POST['_wpcf7'] == ""でした。
if ( !isset($_POST['_wpcf7']) || $_POST['_wpcf7'] == ""){ // Mee News処理開始 foreach(....){ } // Process終了 } // ifを閉じるのように、処理されるforeachその外側をifで囲む。
options-general.php がエラーで止まるという件ですが、Wordpress 3.1までは、wp-include/function.phpの$support = true; をfalseにすることで、timezone関数を使わないような苦肉の策を使ってきましたが、
Wordpress 3.2からtimezone_identifiers_listの利用は必須になったようなので、
どうしようか悩んでいましたが解決できてよかったです。
Redhat Linuxでyum管理していると、timezone関連の関数が使えない問題に起因しています。PHP5.3以降で問題が発生しており、timezone_identifiers_list()を呼び出すと、Segmentation faultsがでます。
1. timezonedbの更新 pecl upgrade timezonedb とコマンドラインでアップデート 2. timezonedbをphpのextensionとして読み込む /etc/php.d/timezone.ini を作成し extension=timezonedb.so とする。 php -r 'timezone_identifiers_list();' というコマンドラインでエラーが発生しないことを確認した上で、 Apacheを再起動すれば、timezonedbがTimezoneで使われ、本問題が回避できるよ うです関連リンク
WP3.2.1からwp-includes/compat.phpが削られているのが原因でした。 WP3.2のcompat.phpをダウンロードして、wp-includes/ に入れることで問題解決。ということで暫定的に解決できるようです。詳細は上記サイトをご覧ください。