背景

你有没有发现在访问自己的 WordPress 网站时,总会多等上那么一会儿?或者你的定时发布文章总是失效?或者你的一些备份程序(如 Updraft)不能如期自动运行?

或许,原因在于你开启了 WordPress Cron。

什么是 WordPress Cron?

WordPress 程序中附带有一个 Cron,它能帮助你自动执行一些定时任务,比如上述的“自动发布文章”、“自动运行备份”等。但是,这一个 Cron 的触发机制是“当用户访问网站、进行操作时 -> 运行 Cron”。

显而易见,每一个用户的访问就会导致执行一遍 Cron,所以在访问量增大,网站服务器的负载升高之后,用户访问速度就会下降了。

关闭 WordPress Cron

进入 WordPress 安装目录,编辑 wp-config.php 文件,并在含有“stop editing”的这一行之前加入代码,如下:

...
/* Add any custom values between this line and the "stop editing" line. */

define('DISABLE_WP_CRON', true);

/* That's all, stop editing! Happy publishing. */
...

用 cPanel Cron Jobs 替换

在了解问题所在之后,让我们开始解决问题!

登陆 cPanel 控制面板,找到 Cron Jobs,

点击进入之后,找到新建 Cron Job 表格,填写希望执行的时间间隔,

然后在 Command 这一栏填上命令,有两种方法:

使用 WGET

wget -q -O - http://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

其中的 example.com 替换为你的网址。

使用 WP-CLI(推荐)

/usr/local/bin/php /usr/local/bin/wp cron event run --due-now --path=/home/USER/public_html/ >/dev/null 2>&1

其中的 /USER/public_html/ 更改为你的虚拟主机目录。

测试效果

可以在后台添加一个定时测试文章,设定在3分钟后。随后查看网站是否出现新文章,若出现则 Cron Jobs 成功运行。若没出现,可能没有配置成功,或者设置的 Cron Jobs 间隔太长,可以设置成1分钟进行测试。

参考资料