如何创建和修改 WordPress Cron 作业

Rifat WordPress Plugins Jul 4, 2023

Cron 是 Unix/Linux 系统中常用的实用程序,用于在后台运行的 Web 服务器上安排命令或脚本。 cron 作业是指计划在预定的固定时间、日期或时间间隔运行的特定任务。 此类任务通常是重复性和自动化的,以提高效率。 对于 WordPress,WP-Cron 函数用于模拟系统 cron。

WordPress cron 作业的实例可能包括安排帖子的发布或按预定义的时间表运行备份插件。 本次讨论的重点是提供有关轻松创建、修改和执行 WordPress cron 作业的全面指导。

如何在 WordPress 中设置 Cron 作业

值得注意的是,WP-Cron 与系统 cron 略有不同,两者都有自己的优点和缺点。 WP-Cron 仅依赖于间隔,而系统 cron 依赖于特定时间。 此外,无论是后端还是前端,WP-Cron 仅在页面加载时才起作用,这可能会导致可靠性较低。 WordPress 提供的默认间隔包括每小时、每天两次和每日计划。

要安排 WP-Cron 事件,需要创建自定义挂钩。 我们强烈建议您查阅官方 WordPress 插件手册,其中提供了有关安排 WP-Cron 事件的出色指南。 如果您正在寻找在 WordPress 中配置系统 cron 的替代方法,我们建议您参考 Tom Mcfarlin’ 的有关定义 WordPress cron 作业的文章。 此外,对于那些经验不足的人,我们将探索一种简单的方法来将 WP-Cron 与流行的免费WP C r控制插件结合使用。 该插件允许您监视和管理 WP-Cron 系统内的活动。

创建令人惊叹的网站

使用最好的免费页面构建器 Elementor

现在开始

WP Crontrol 拥有超过 200,000 的活跃安装数量,令人印象深刻,并且评分为 4.5(满分 5)。在 WordPress 社区中,该插件赢得了极大的赞赏。

该插件通过提供计划运行的 CRON 作业的全面概述来提供卓越的实用性。 它是理解底层流程并确定其运行状态的良好第一步。 这些优点使其获得了 5 星的一致评级。 此外,创建新的 cron 作业并启动执行现有作业的能力进一步增强了其价值,因此获得了额外的 5 星级评级,正如 Caldera Forms 的创建者 Josh 所确认的那样。

要获取此插件,可以直接从 WordPress 存储库下载它,也可以在 WordPress 仪表板的“添加新”插件部分下找到它。 WP Control 的值得注意的功能包括:

  • 全面显示所有 cron 事件,包括它们各自的参数、重复模式和即将执行的时间。
  • 修改、删除或立即启动任何 cron 事件的能力。
  • 引入新的 cron 事件的规定。
  • 添加、修改和删除自定义 cron 计划的选项。

WP-Cron 时间表

激活后,用户可以通过访问 WordPress 仪表板设置中的“Cron Schedules”部分来修改 WordPress Cron 作业计划。 值得注意的是,该插件引入了每周频率的额外默认时间表。 此外,用户还可以选择添加以秒为单位的额外计划,例如每 6 小时执行 21600 秒的任务。

可以通过使用过滤器将这些间隔合并到代码中,例如以下代码行:

add_filter( 'cron_schedules', 'example_add_cron_interval' );

function example_add_cron_interval( $schedules ) {
 $schedules['five_seconds'] = array(
 'interval' => 5,
 'display' => esc_html__( 'Every Five Seconds' ),
 );

return $schedules;
 }

WP-Cron 事件


随后,该插件还可以用于查看已安排的现有 WordPress Cron 作业。 要访问此功能,请导航至“工具”选项卡下的“Cron 事件”部分。 许多操作名称很容易识别,因为它们应该与插件名称的特定部分相对应,例如“woocoomerce_cleanup_sessions”或“gravityforms_cron”。


要立即执行 Cron 事件,只需单击相应操作名称旁边的“立即运行”选项即可。 事实证明,此功能在故障排除过程中非常有利,特别是当需要多次运行 Cron 事件时。

添加 Cron 事件

此外,您可以选择将 Cron 事件合并到您的设置中。 在本例中,我们将演示专门为 Disqus 插件添加 WordPress Cron 作业的过程。 许多人可能希望执行此任务,以便修改同步频率或解决与评论同步相关的问题。 每个第三方插件开发人员提供的文档应包含其 cron 事件的指定名称,或者换句话说,操作名称。 对于 Disqus 插件,使用的操作名称是“dsq_sync_forum”。

如果您打算从头开始创建 cron 事件,则需要在代码中添加相应的操作挂钩,例如functions.php 文件。 以下示例由 WP-Crontrol 提供,说明了这一概念:

add_action( 'my_hookname', 'my_function' );

您要编写的下一个函数是 -

function my_function() {
    wp_mail( '[email protected]', 'WP Crontrol', 'WP Crontrol rocks!' );
}


就 Disqus 而言,我们的第一步涉及合并一个持续时间为 600 秒(相当于 10 分钟)的新 cron 计划。 随后,我们继续访问“添加 Cron 事件”功能,在其中输入“dsq_sync_forum”作为指定的操作名称。 然后我们选择后续执行时间并选择我们最近建立的 10 分钟间隔。 最后,我们通过选择“添加 Cron 事件”来结束该过程。 因此,此过程可确保每 10 分钟自动重复一次,从而促进 Disqus 评论与我们的 WordPress 数据库的手动同步。

本质上,该功能的使用是简单且用户友好的。

修改玉米事件

此外,还可以通过选择操作名称旁边的“编辑”选项来修改预先存在的 Cron 事件。 因此,您可以更改操作名称、参数、后续执行和计划的重复执行。 进行此类更改时务必谨慎,因为许多插件依赖于其 Cron 作业来实现正确的功能。

使用 cPanel 添加 Cron 作业

如果您有权访问网络主机提供的 cPanel 帐户,则可以利用控制面板来建立 cron 作业。 为此,请登录您的 cPanel 帐户并导航至“高级”部分,然后选择“Cron Jobs”。

Cron 作业的设置页面提供了配置 cron 作业通知和建立新通知的选项。 要合并 cron 作业,请向下滚动导航至标有“添加新 Cron 作业”的部分。

在此部分中,您将有机会调整命令的频率。

通用设置菜单包含各种预配置选项,频率范围从每分钟一次到每年一次。 用户可以灵活地选择这些选项中的任何一个,或者通过输入个性化值来自定义以下字段。

配置 cron 作业的频率后,您可以继续在指定的命令字段中输入它将执行的命令。 要保留更改,请通过选择“添加新 Cron 作业”选项来保存 cron 作业。 因此,新创建的 cron 作业将显示在页面底部列出的当前 cron 作业中。

禁用 WP-Cron

在某些情况下,使用 WP-Cron 功能可能会给您的网站带来麻烦。 WP-Cron 是 cron 作业的模拟版本,缺乏通常与此类作业相关的连续操作。 相反,WordPress 在每次加载页面时执行 wp-cron.php 脚本。

这种方法可能会给经历高流量的网站带来挑战,因为必须分配大量资源来在每次页面加载期间执行 wp-cron.php。 如果脚本由于页面加载而无法运行,计划的命令也可能无法执行,因为 wp-cron.php 不会主动监控间隔。

如果您遇到 WP-Cron 问题,您可以选择通过将以下代码合并到 WordPress wp-config.php 文件中来停用此功能:

define('DISABLE_WP_CRON', true);

将修改保存到文件后,该过程就完成了。 不过,如果您选择禁用 WP-Cron,则需要使用本教程前面部分中描述的任何方法来建立替代解决方案。

包起来

通过利用价值 275 美元或以上的企业级集成(无缝集成到每个托管 WordPress 计划中),提高效率并减少开支,同时优化网站功能。 这些集成包括高性能内容交付网络 (CDN)、强大的分布式拒绝服务 (DDoS) 保护、针对恶意软件和黑客攻击的全面防护、高效的边缘缓存机制以及 Google 最快的 CPU 机器。 无需签订冗长的合同承诺即可开始您的旅程,受益于指导迁移,并享受 30 天退款保证。

Divi WordPress Theme