自动任务使用问题
比比主题中应用了一些自动任务相关操作,例如定时清除数据表中冗余的消息数据,定时更新用户的购买数据,每日定时生成新的星星等,都涉及到 wordpress的定时自动任务,有的需要每日更新,有的 3 个月、半年更新。
这里就涉及到一个概念:WP-Cron(自动任务)
但是,WordPress 默认 cron 的问题,它不是真正的系统 cron,它依赖有人访问网站才会触发。
例如,我们的星星每日凌晨自动下发 500 条新的数据,如果我们的网站在 23:00~23:05 或 00:00~00:05 没人访问,星星任务就不会执行!
所以,为了更加安全和保险,我们可以设置系统 cron而不依赖访客触发,甚至可以在 wp-config中禁用WordPress 默认 cron。
这里主要讲一下宝塔面板如果操作使用系统任务。
在宝塔面板的计划任务中新建一个【添加计划任务】
| 项目 | 值 |
|---|---|
| 任务类型 | 访问 URL |
| 任务名称 | Trigger WP-Cron(随便起名) |
| 执行周期 | N 分钟 → 填 5(即每 5 分钟执行一次) |
| URL 地址 | https://你的域名.com/wp-cron.php?doing_wp_cron |
📌 示例:
如果你的网站是https://example.com,就填:https://example.com/wp-cron.php?doing_wp_cron
保存后,服务器会每 5 分钟自动访问一次 wp-cron.php,从而可靠地驱动所有 WordPress 定时任务。
禁用 WordPress 默认 cron(推荐)
为了防止访客意外触发 cron 浪费资源,建议在 wp-config.php 文件顶部(在 <?php 下方)添加一行:
define DISABLE_WP_CRON true
这不会影响你任何已注册的任务,因为现在是由宝塔的计划任务来触发,反而更高效稳定。
验证是否生效
你可以通过安装 WP Crontrol 插件查看各任务的下次执行时间,确认 star_generate_daily 是否安排在今天 23:00。也可以在函数中加入 error_log 日志,次日检查 debug.log 或数据库是否有新数据生成。
喜欢这篇内容吗?