详细讲解wordpress实现定时任务的方法

    首先wordpress定时功能是自带的,它的定时功能实现的原理是通过用户访问页面来实现获取当前时间戳和你要进行定时的任务时间进行对比,原理就是这样。 

    今天我们介绍两种方法来实现定时器,一种是默认的wordpress主题通过用户访问来触发,另外一种就是我们自己的服务器进行内部请求wordpress。两种的代码都是一样的,只是触发不同。

第一步、先定义一个事件的频次

add_filter( 'cron_schedules', 'hx_add_every_time' );
function hx_add_every_time( $schedules ) {
    $schedules['every_time'] = array(
        'interval' => 60, //这里是定时器的频次
        'display'=> 'MY cron'
    );
    return $schedules;
}

这里只是定义了频次,没有干其他任何的事情。

第二步、对上面的定时器创建一个对应的钩子函数,注意注意,这里创建的wordpress定时任务钩子函数,不是执行函数。

wp_schedule_event( time(), 'every_time', 'hx_cron_hook' );

第三步、创建执行函数的方法,也就是定时器要实现的具体功能,注意名称的对应。

wp_schedule_event( time(), 'every_time', 'hx_cron_hook' );
add_action( 'hx_cron_hook', 'hx_cron_cute');
function hx_cron_cute() {
    echo "我爱'主题网'-我是被定时器执行的";
}

这就是定时器的任务执行代码部分,更改wordpress后台的登录界面默认的通过用户访问来执行,我们可以改成服务器触发

ssh连接后输入命令,打开服务器的定时设置

crontab -e

然后输入

* * * * YOUR_USER /usr/bin/wget -q --post-data '' http://www.daima66.com/wp-cron.php /dev/null

这样就添加了定时访问,最后重启一下定时器

systemctl restart crond
我爱主题网 自2012
主题:260+ 销售:1000+
兼容浏览器