WordPress 2.9.2中使用WP Query时出现“ApacheHTTP服务已停止工作”

时间:2011-02-08 作者:Scott B

当我的脚本运行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不兼容的内容?代码在WP 3.0.4下的同一服务器上运行良好

以下是错误的详细信息:

问题签名:问题事件名称:APPCRASH应用程序名称:httpd。exe应用程序版本:2.2.14.0应用程序时间戳:4aeb9704故障模块名称:php5ts。dll故障模块版本:5.3.1.0

2 个回复
最合适的回答,由SO网友:hakre 整理而成

执行发布的代码会导致PHP模块内部崩溃。我假设您在windows上的apache中作为模块运行PHP,如果模块崩溃,apache也会崩溃。

确保您在这里使用的是正确的PHP模块。您确定需要apache的PHP线程安全变体吗?据报道,这些系统在windows IIRC下运行不稳定。

因此,这可能与wordpress版本无关,但与服务器配置有关。

希望这个答案有助于解决问题。

SO网友:Stephen Cronin

现在认识到这一点,但这可能有助于人们通过谷歌找到这一点:

当在由pre_get_posts hook. 问题是我错过了条件:

$query->is_main_query()
这意味着它可以处理所有的查询,而不仅仅是主查询。加上这个,我就解决了这个问题。我使用的完整条件是(然后是下面的其他代码:

if ( ! is_category() || ! $query->is_main_query() || ! is_a( $query, \'WP_Query\' ) )
    return;

结束

相关推荐

Displaying oEmbed errors?

有时,通过oEmbed嵌入项目是不可能的,例如,当YouTube视频已禁用嵌入时。The oEmbed service will return a 401 Unauthorized, 并且不会转换代码。有没有办法通知用户这一点?当前的工作流是非直观的(至少对我来说),我更喜欢在WordPress页面上,或者更好的是,在编辑器中显示一条消息,说明对象无法嵌入。