从下一个星期一开始在wordpress中安排事件

时间:2014-09-05 08:19:14

标签: php wordpress

我已经制作了一个插件来发送每周简报。目标是该插件将在每个星期一拍摄电子邮件。

我在这里几乎没有什么困惑:

1 - 请查看以下代码

function my_cron_definer($schedules){  
    $schedules['weekly'] = array('interval'=> 604800,
        'display'=>  __('Once Every week')  
        );  
    return $schedules;
}

add_filter('cron_schedules','my_cron_definer');    

wp_schedule_event($timestamp, 'weekly', 'informantweeklynewsletter');

add_action('informantweeklynewsletter','informant_main_action');

所以,我每周都会定制一次'。但是我不确定我应该向$timestamp变量提供什么,以便它将从星期一开始工作,无论插件何时被激活。在我的插件中,我没有定义任何激活和停用功能,因为我认为我不需要它们。

我的第二个问题是: wordpress cron与普通cronjobs不同,因为它需要访问网站。看看上面的代码,我需要知道我的插件无法工作的可能性。我可以做出什么样的解决方案?每周一开始使用informant_main_action方法。

谢谢

1 个答案:

答案 0 :(得分:0)

假设所有其他设置都已正确设置...您可以使用

strtotime('nextmonday');

作为您的时间戳。你需要将它放在一个激活挂钩中,这样它只运行一次,你可以检查挂钩是否存在

if( ! wp_next_scheduled( ''informantweeklynewsletter' ) )
    wp_schedule_event($timestamp, 'weekly', 'informantweeklynewsletter');

否则,每次有人访问您的页面时,您都会设置一个新的cron作业.....

您可以使用真正的cron作业对此进行补充,以便每周访问您的页面。如果你有cpanel,你可以使用这样的东西(注意你的路径必须在此更新)。 *和数字是您希望它运行时的最小值,小时,日,月,工作日

* 2 * * 7 wget -O - http://yoursite.com/tasks.php >/dev/null 2>&
相关问题