【问题标题】:WP Cron Job Runs On Every Page LoadWP Cron 作业在每次页面加载时运行
【发布时间】:2016-08-28 23:31:24
【问题描述】:

我正试图围绕 wp cron 工作并一直在玩下面的 sn-p 代码,它应该每小时向指定的电子邮件地址发送一封电子邮件,当然前提是访问者已访问该站点并触发了该作业(我明白了,wp cron 作业显然不是真正的 chron 作业)。

现在,这项工作的工作原理是向电子邮件地址发送一封电子邮件,但有两个问题:

  1. 每个 chron 作业会多次发送电子邮件
  2. Cron 作业似乎会在每次页面加载时触发,即使它不应该每小时运行一次以上

这是代码(取自wp_schedule_event not firing):

if ( ! wp_next_scheduled( 'prefix_hourly_event' ) ) {
    wp_schedule_event( time(), 'hourly', 'prefixhourlyevent');       
}

add_action( 'prefixhourlyevent', 'prefix_do_this_hourly' );

function prefix_do_this_hourly() {       
   wp_mail('myemail@gmail.com','Cron is working', 'Cron is working: ','','');
}

谁能告诉我为什么不每小时只发送一封电子邮件? //Mega WP Noob

【问题讨论】:

    标签: php wordpress cron


    【解决方案1】:

    您正在检查某项活动是否已安排好,如果未找到,则您正在以不同的名称进行注册。不匹配是导致它在每次页面加载时运行的原因。

    改变这个:

    if ( ! wp_next_scheduled( 'prefix_hourly_event' ) ) {
    

    到这里:

    if ( ! wp_next_scheduled( 'prefixhourlyevent' ) ) {
    

    我还想看看您是否可以检查一次时间表,而不是在每个页面加载时检查。例如,如果你正在编写一个插件,你可以在插件激活钩子上触发它。

    延伸阅读:https://codex.wordpress.org/Function_Reference/wp_schedule_event

    【讨论】:

    • 我也有同样的问题。如果你能在这里帮助我。这是我的代码:if( ! wp_next_scheduled( 'import_process' ) ){ wp_schedule_event( strtotime('02:00:00'), 'daily', 'import_process ); } add_action( 'import_process', Import_Class::api_call() ); 我已经检查了这些操作,但没有解决它们。如果您能在这里提供帮助,那就太好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 2017-01-20
    • 2015-07-01
    • 2017-05-26
    • 1970-01-01
    • 2011-03-20
    相关资源
    最近更新 更多