设置计划任务(供脚本运行)

时间:2013-04-12 作者:user1915665

我将制作一个需要预定运行时间的脚本。在Wordpress中,最好的方法是什么?或者这可以通过一些PHP方法来实现?我很难找到一个清晰的起点。

请原谅这个模糊的标签。“chron,scheduled”和其他有用的标签被系统拒绝,无法提交。

1 个回复
最合适的回答,由SO网友:Andrew Bartel 整理而成

WordPress“cron”作业是按照设置的时间表运行的数据库条目,而不是真正的Linux cron作业。虽然WordPress cron作业相对可靠,但它们确实需要有人访问站点,以检查是否需要运行。也就是说,如果您的网站流量非常低,您可能需要设置一个实际的cron作业来ping站点的首页,以确保WordPress cron作业按时运行。

WP cron是使用wp_schedule_event() 作用默认情况下,选项为每小时、每小时两次和每天。要设置计划事件,请创建挂钩:

function set_up_scheduled_event() {
    if ( !wp_next_scheduled( \'Send_Report\' ) ) {
        wp_schedule_event( time(), \'daily\', \'Send_Report\');
    }
}
add_action(\'wp\', \'set_up_scheduled_event\');
这将为您创建一个名为“Send\\u Report”的挂钩,该挂钩将从该脚本运行的24小时开始每天运行一次。它还确保不会覆盖自身。

接下来,您需要将要执行的操作挂接到您创建的新挂钩上。

add_action(\'Send_Report\', \'actually_send_report\');
function actually_send_report {
// do something cool here, like generate a report and email it
}
如果每小时、每两次或每天都不适合您,您可以通过cron\\u时间表过滤器创建新的时间间隔。

add_filter(\'cron_schedules\', \'add_weekly_and_monthly_cron\');
function add_weekly_and_monthly_cron( $schedules )
    {
        if(!array_key_exists(\'weekly\',$schedules))
        {
            $schedules[\'weekly\'] = array(
                \'interval\' => 604800,
                \'display\' => __( \'Once Weekly\' )
            );
        }
        if(!array_key_exists(\'monthly\',$schedules))
        {
            $schedules[\'monthly\'] = array(
                \'interval\' => 2592000,
                \'display\' => __( \'Once Monthly\' )
            );
        }
        return $schedules;
    }
在这些情况下,间隔是cron作业之间的秒数。

结束

相关推荐

Functions.php:从博客中排除类别

所以很明显,如何从模板中排除某些类别,但我不想修改4个模板,使它们忽略某个类别。有没有一种方法可以将某个类别从阅读设置的“博客”集中排除?我正在将博客分配到名为“博客”的页面。。。但显然,档案和搜索也需要对这一超出类别的内容视而不见。我宁愿在里面做functions.php