如何在 WordPress 中禁用 wp-cron 并设置正确的 Cron 作业
已发表: 2022-06-28您是否遇到无法在 WordPress 中运行的计划操作的问题?
WordPress 有一个名为 wp-cron 的计划系统,但它有时会错过计划任务,例如发布计划的帖子、发送触发的电子邮件等。由服务器操作系统运行的正确 cron 作业通常更可靠。
在本文中,我们将向您展示如何在 WordPress 中禁用 wp-cron,并介绍两种设置正确 cron 作业的方法。

为什么禁用 wp-cron?
您的 WordPress 网站有一个名为 wp-cron 的内置调度系统。 它执行时间敏感的任务,例如检查更新、发布预定的帖子、自动创建定期备份、发送触发的电子邮件等。
您可以在我们的指南中了解有关如何查看和控制 WordPress cron 作业的更多信息。

问题是只有在有人访问您的网站时才会提示 WordPress 检查预定的作业。 这对于大多数网站来说都足够好,但有时它可能会给较小的网站带来问题。
例如,如果您的网站流量较低,那么您预定的帖子可能不会按时发布。 如果你的网站流量很大,那么 wp-cron 会被频繁检查,这可能会影响你网站的性能。
现在,如果您只想修复丢失的预定帖子错误,那么您可以使用免费插件 Missed Scheduled Publisher,但如果您想解决所有预定操作问题,那么您需要一个真正的 cron 作业。
真正的 cron 作业由您的网络托管服务器的操作系统运行,而不是由 WordPress。 您可以将其设置为检查计划任务更多可靠。 默认情况下,WordPress 无权在服务器级别进行设置,但您可以按照我们的教程轻松完成。
话虽如此,让我们看看如何禁用 wp-cron 并设置正确的 cron 作业。 以下是我们将在本教程中介绍的内容:
- 在 WordPress 中禁用 wp-cron
- 在您的 WordPress 主机上设置正确的 Cron 作业
- 使用第三方服务设置正确的 Cron 作业
在 WordPress 中禁用 wp-cron
要禁用 wp-cron,您需要编辑 wp-config.php,这是一个核心 WordPress 配置文件。 它位于您的 WordPress 站点的根文件夹中,您需要使用 FTP 客户端或网络托管控制面板中的文件管理器。
该文件包含大量敏感信息,做出错误的更改可能会破坏您的 WordPress 网站。 我们建议先备份文件,以防万一。 您可以按照我们的指南了解如何在 WordPress 中编辑 wp-config.php。
您需要将以下代码粘贴到 wp-config.php 文件中,就在“就是这样,停止编辑! 快乐的博客。
define('DISABLE_WP_CRON', true);

之后,您需要保存文件并将其上传回您的网站。
当有人访问您的网站时,WordPress 将不再触发 wp-cron。
在您的 WordPress 主机上设置正确的 Cron 作业
现在您需要设置一个适当的 cron 作业来运行您的计划任务。 您执行此操作的方式将根据您的 WordPress 托管服务提供商提供的工具而有所不同。
设置 cron 作业的最简单方法是使用 cPanel,这是一个流行的网站控制面板,包含在许多网络托管计划中,包括 Bluehost。 我们将在本教程中使用 Bluehost cPanel。
注意:有些网络主机不使用 cPanel,有些甚至可能不允许您创建 cron 作业。 如有疑问,您应该联系您的托管服务提供商或查阅他们的支持文档。 您始终可以使用第三方 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 分钟检查一次并运行计划任务,而不是在有人访问您的网站时。
使用第三方服务设置正确的 Cron 作业
如果您的托管计划没有提供适当的 cron 作业,或者它们难以设置,那么您可以改用第三方 cron 服务。
这些是专用服务,允许您使用简单的界面设置 cron 作业。 这里有一些更好的:
- EasyCron 有一个免费计划,需要每月续订
- cron-job.org 是一项免费服务
- 如果您只需要一项 cron 工作,Cronitor 是免费的
- SetCronJob 提供付费计划,起价为 10 美元/年
对于本教程,我们将使用 EasyCron,因为它易于使用,而且免费计划适用于大多数初学者用例。
创建免费帐户后,您可以通过单击左侧的“+ Cron Job”按钮来创建新的 cron 作业。

这将弹出“创建 Cron 作业”屏幕。 首先,您需要将以下 URL 粘贴到“要调用的 URL”字段中。
https://example.com/wp-cron.php?doing_wp_cron
确保将“example.com”替换为您自己网站的 URL。

之后,您应该从“何时执行”下拉菜单中选择“每 30 分钟”。 完成后,不要忘记单击“创建 Cron 作业”按钮来存储您的设置。
新的 cron 作业将被添加到列表中,并每 30 分钟在您的网站上运行一次 wp-cron。

我们希望本教程能帮助您了解如何在 WordPress 中禁用 wp-cron 并设置正确的 cron 作业。 您可能还想查看我们的 WordPress SEO 分步指南,或查看我们的常见 WordPress 错误列表以及如何修复它们。
如果您喜欢这篇文章,请订阅我们的 YouTube 频道以获取 WordPress 视频教程。 您也可以在 Twitter 和 Facebook 上找到我们。