每当我尝试使用WP\\u查询进行循环时,我突然发现内存和超时错误。代码如下:
$args = array(
\'post_type\' => \'post\',
\'posts_per_page\' => \'3\',
\'fields\' => \'ids\'
);
$query = new WP_Query($args);
while($query->have_posts()) {
}
通过3行循环显然不会使服务器过载,因此会发生某种错误。正如我所说,这只是突然发生的,它在早些时候运行良好。当它第一次出现故障时,我得到的是内存错误,但现在是相同的错误:
致命错误:在C:\\Projects\\fieldaware中超过了30秒的最大执行时间。dev\\wp包含\\查询。php在线3760
所有帖子类型都会发生这种情况。我可以通过管理员帖子编辑器查看帖子,所以这似乎只是我的代码导致的问题。
我有什么办法可以诊断出这是怎么回事吗?我还应该提到,使用get\\u posts不会导致任何超时错误,因此:
$query = get_posts($args);
foreach($query as $post) {
}
工作正常,只是WP\\U查询导致了问题。
更新时间:
我试着运行之前运行过的代码,但它再次运行,我不明白,它在这里:
$args = array(
\'post_type\' => \'fa_asset\',
\'posts_per_page\' => 50,
\'paged\' => 1
);
$query = new WP_Query($args);
$data = array(\'data\' => array());
// ID, Model, Manufacturer, Serial Number, Last Service, Service Frequency, Next Service, Type
if ($query->have_posts()) {
while($query->have_posts()) {
$query->the_post();
echo \'<p>TEST</p>\';
$id = $query->post->ID;
$type = $query->post->post_title;
$manufacturer = get_post_meta($id,\'manufacturer\',true);
$serial_number = get_post_meta($id,\'serial_number\',true);
$data[\'data\'][] = array(
\'id\',
\'model\',
$manufacturer,
$serial_number,
\'last service\',
\'service frequency\',
\'next service\',
$type
);
}
}
wp_reset_postdata();
echo "<pre>" . json_encode($data,JSON_PRETTY_PRINT). "</pre>";
我对这篇文章完全迷茫了(顺便说一句,这不是帖子类型,我试着改变它)。我看不出更详细的代码有什么不同。