我已经制作了一个插件来发送每周简报。目标是该插件将在每个星期一拍摄电子邮件。
我在这里几乎没有什么困惑:
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
方法。
谢谢
答案 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>&