【发布时间】:2020-03-16 12:08:50
【问题描述】:
我将 Wordpress Cron 作业设置为每 5 分钟运行一次,并执行一个名为 bulk_update() 的函数。当我通过管理员手动运行该功能时,它可以工作。
但是,Cron 作业似乎没有执行该功能。我在函数的开头添加了error_log(print_r("EXECUTION OF BULK_UPDATE"));,以了解 Cron 作业是否成功调用了该函数,但我在日志中没有得到任何信息。
这里是 bulk_update 函数:
function bulk_update() {
error_log(print_r("LAUNCH OF BULK_UPDATE"));
$args = array(
'post_type' => 'page',
'date_query' => array(
array(
'column' => 'post_modified_gmt',
'before' => '2019-02-17 23:59:59',
),
),
'posts_per_page' => 20,
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
echo $the_query->found_posts . "<br />";
while ( $the_query->have_posts() ) {
$the_query->the_post();
$post_id = get_the_ID();
$slug = get_post_field( 'post_name', $post_id );
$key = explode("n-", $slug);
echo $key[1] . "<br/>";
update_dico_page($key[1], $post_id);
}
/* Restore original Post Data */
wp_reset_postdata();
} else {
echo "No post found.";
}
}
我还有其他具有类似设置的 Cron 作业,它运行良好。我使用 WP Crontrol 来管理我的 Cron 作业,并且设置似乎正确:
知道什么会阻止这个 cron 作业正常工作吗?
【问题讨论】:
-
如果代码有效,那么这不是一个编程问题,在这里是题外话。我建议联系这个插件的作者以获得支持。
-
与插件无关,因为我自己也安排了Cron(没有插件),它不起作用......
-
WP Cron 仅在访问者在您的页面上时运行。它不像一个“真正的”cron。
-
我的页面上经常有大约 400 名访问者(这是一个 200 万访问者/月的网站)