您是否遇到无法在 WordPress 中运行的计划操作的问题?
WordPress 有一个名为 wp-cron 的计划系统,但它有时会错过计划任务,例如发布计划的帖子、发送触发的电子邮件等。由服务器操作系统运行的正确 cron 作业通常更可靠。
在本文中,我们将向您展示如何在 WordPress 中禁用 wp-cron,并介绍两种设置正确定时作业的方法。
为什么禁用 wp-cron?
您的WordPress 网站有一个名为 wp-cron 的内置调度系统。它执行时间敏感的任务,例如检查更新、发布预定的帖子、自动创建定期备份、发送触发的电子邮件等。
您可以在我们的指南中了解有关如何查看和控制 WordPress cron 作业的更多信息。
问题是只有在有人访问您的网站时才会提示 WordPress 检查预定的作业。这对于大多数网站来说都足够好,但有时它可能会给较小的网站带来问题。
例如,如果您的网站流量较低,那么您预定的帖子可能不会按时发布。如果你的网站流量很大,那么 wp-cron 会经常被检查,这可能会影响你网站的性能。
现在,如果您只想修复丢失的预定帖子错误,那么您可以使用免费插件Missed Scheduled Publisher,但如果您想解决所有预定操作问题,那么您需要一个真正的 cron 作业。
真正的定时作业由您的网络托管服务器的操作系统运行,而不是由 WordPress。您可以将其设置为更可靠地检查计划任务。默认情况下,WordPress 无权在服务器级别进行设置,但您可以按照我们的教程轻松完成。
让我们看看如何禁用 wp-cron 并设置正确的 cron 作业。
在 WordPress 中禁用 wp-cron
要禁用 wp-cron,您需要编辑wp-config.php,这是一个核心 WordPress 配置文件。它位于您的 WordPress 站点的根文件夹中,您需要使用 FTP 客户端或网络托管控制面板中的文件管理器。
该文件包含大量敏感信息,做出错误的更改可能会破坏您的 WordPress 网站。我们建议先备份文件,以防万一。您可以按照我们的指南了解如何在 WordPress 中编辑 wp-config.php。
您需要将以下代码粘贴到 wp-config.php 文件中,就在“就是这样,停止编辑!快乐的博客 /* That’s all, stop editing! Happy publishing. */“的上方。
define('DISABLE_WP_CRON', true);
之后,您需要保存文件并将其上传回您的网站。
当有人访问您的网站时,WordPress 将不再触发 wp-cron。
在您的 WordPress 主机上设置正确的 Cron 作业
现在您需要设置一个适当的 cron 作业来运行您的计划任务。您执行此操作的方式将根据您的WordPress 托管服务提供商提供的工具而有所不同。
在宝塔面板添加定时作业计划
请查看文章《在宝塔面板添加 WordPress 定时作业计划任务》
在cPanel面板添加定时作业计划
cPanel是一个流行的网站控制面板,包含在许多网络托管计划中,包括Bluehost。我们将在本教程中使用Bluehost cPanel。
注意:有些网络主机不使用 cPanel,有些甚至可能不允许您创建 cron 作业。如有疑问,您应该联系您的托管服务提供商或查阅他们的支持文档。
登录主机帐户并导航到 cPanel 后,您应该向下滚动直到找到“Cron Jobs”,然后单击它。
您可以在“高级”部分找到它,但这可能因您的托管服务提供商而异。
这将带您进入一个新页面,您可以在其中创建新的 cron 作业。
不要担心您会看到关于需要很好地了解 Linux 命令的警告。只需要一个命令,我们将在下面向您展示它的确切含义。
如果需要,您可以更改将发送cron 作业通知的电子邮件地址。默认地址是您在注册虚拟主机时使用的地址,这在大多数网站上都可以正常工作。
现在,让我们向下滚动到“添加新的 Cron 作业”部分并设置一个 cron 作业。
首先,您需要确定 cron 作业的运行频率。这可以是您喜欢的任何内容,但我们建议间隔 30 分钟。
您需要单击“通用设置”按钮并从下拉列表中选择时间间隔。如果您不确定,对于大多数网站来说,“每小时两次”是一个不错的选择。
现在您可以输入要求 WordPress 运行其计划任务的命令。您需要将以下代码粘贴到“命令”字段中:
wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
请确保将“example.com”替换为您自己网站的 URL。
完成此操作后,请确保单击“添加新的 Cron 作业”按钮,您将看到新的 cron 作业已添加到下面的列表中。
WordPress 现在将每 30 分钟检查一次并运行计划任务,而不是在有人访问您的网站时。
总结
WordPress 的定时作业都是通过访问者触发的,网站访问量决定了执行的频次,流量大的触发频次大,服务器消耗多,访问量过低,触发频次就低,导致有些计划无法按期执行。
通过在服务器端设置定时计划,就很好的解决了上面的问题。
拓展阅读:
- 如何查看和管理WordPress 定时任务
- 详细介绍 WordPress 配置文件 wp-config.php
- 15个常用的WordPress wp-config.php 配置代码
- 你可能不知道的几个 wp-config.php 常量设置
- WordPress定时发布文章/解决定时发布失效
- 宝塔面板下运维WordPress网站
我设置的是每分钟之行一次,感觉频率有点高了
不用设置那么高,一般30分钟一次就可以了