由于WordPress必须在各种不同的平台,操作系统和配置上运行,所以没法指望服务器上肯定存在一个能够处理计划任务的cron job服务。因此WordPress开发人员创造了个解决方法:每当有网站的访客加载页面时,都会在主WordPress文件夹中执行wp-cron.php文件。然后,它检查是否有设定需要计划执行的任务要完成,并在必要时执行它。
但是,在某些情况下,这个文件可能会成为DOS(拒绝服务)攻击的目标,有时候缓存插件也可能会干扰它的执行,这要么会导致加重服务器的负载的不良后果,要么是计划的任务无法正确,及时地执行。这就是为什么您需要用真正的cron作业来代替这个固定的文件调用执行的原因。
首先,您需要禁用掉每次有人加载您的页面时都会执行的脚本。为此,请在主WordPress文件夹中打开wp-config.php文件,并在“ /* That’s all, stop editing! Happy blogging. */”这一行之前添加:
define('DISABLE_WP_CRON', true);
完成这步操作后,您需要设置一个真实的cron作业并用它来执行wp-cron.php文件。不需要调用的太频繁,对于大多数网站而言,30分钟一次就足够了。要做到这一点,在你的网站管理面板中找到 Site Tools > Devs > Cron Jobs。




然后,添加以下命令,每30分钟执行一次:
wget -q -O - http://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
记得用您的实际域名替换yourdomain.com。这个Cron作业工具有一些最常见的时间表的预设,所以你可以直接从下拉菜单中选择”每小时两次“的执行时间间隔。




原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/2199.html