WordPress 2.9.2のWPクエリを使用して、「Apache HTTPサービスが機能しなくなりました」

wordpress.stackexchange https://wordpress.stackexchange.com/questions/8900

  •  16-10-2019
  •  | 
  •  

質問

私のスクリプトがWP 2.9.2で下の4行目を実行すると、Webアプリが「Apache HTTPサービスが機能しなくなった」エラーをスローさせます。

$cat=get_cat_ID('top-menu');
$catHidden=get_cat_ID('hidden');
$myqueryCurrent = new WP_Query();
$myqueryCurrent->query(array('cat'=>"$cat,-$catHidden",'post__not_in'=>get_option('sticky_posts')));

WP 2.9.2と互換性のないその4行目に何かが見えますか?コードは、WP 3.0.4の下で同じサーバーで正常に実行されます

エラーの詳細は次のとおりです。

問題署名:問題イベント名:AppCrashアプリケーション名:httpd.exeアプリケーションバージョン:2.2.14.0アプリケーションタイムスタンプ:4AEB9704障害モジュール名:PHP5TS.DLL障害モジュールバージョン:5.3.1.0

役に立ちましたか?

解決

投稿したコードを実行すると、PHPモジュール内のクラッシュが発生します。モジュールがクラッシュすると、Apacheもクラッシュする場合、WindowsのApache内のモジュールとしてPHPを実行していると思います。

ここで適切なPHPモジュールを使用していることを確認してください。 ApacheのPHPのスレッドセーフバリアントが必要ですか?これらは、Windows IIRCで安定していないと報告されています。

したがって、これはWordPressバージョンではなく、サーバーの構成に関連している可能性があります。

この答えが物事に少し取り組むのに役立つことを願っています。

他のヒント

今この古いものを実現していますが、これはGoogleを介してこれを見つける人々に役立つかもしれません:

apacheが呼び出される関数内で同様のコードを実行しているときに死にかけているのに問題がありました pre_get_postsフック. 。問題は私が条件を逃したことでした:

$query->is_main_query()

つまり、それは主要なクエリだけでなく、すべてのクエリのために仕事をしていたことを意味します。それを追加して、私にとって問題を修正しました。私が使用する完全な条件付きは(その後、以下の他のコードです。

if ( ! is_category() || ! $query->is_main_query() || ! is_a( $query, 'WP_Query' ) )
    return;
ライセンス: CC-BY-SA帰属
所属していません wordpress.stackexchange
scroll top