You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WP-Control插件中自定义Cron任务未显示的问题求助

解决WordPress自定义Cron调度不显示在WP-Control的问题

嘿,我瞅了你的代码,发现两个核心问题导致自定义调度没出现在WP-Control的列表里,咱们来逐个修正:

问题1:重复绑定同一个函数到动作和过滤器

你把cron_add_everyday同时挂到了plugins_loaded动作和cron_schedules过滤器上,这会造成逻辑冲突——过滤器需要接收并返回修改后的调度数组,而动作不需要返回值,这种重复绑定会让WordPress无法正确处理你的自定义调度。

问题2:直接覆盖默认调度数组

在函数里你直接用$schedules = array('everyday' => ...)把原有调度数组完全替换了,这不仅会让自定义调度无法被正确合并,还会弄丢WordPress自带的所有默认调度(比如 hourly、twicedaily 这些)。正确的做法是把新调度合并到原有数组里,而不是覆盖。


修正后的完整代码

// 注册自定义调度规则
add_filter( 'cron_schedules', 'add_custom_daily_schedule' );
function add_custom_daily_schedule( $schedules ) {
    // 合并新调度到原有数组,保留默认调度
    $schedules['everyday'] = array(
        'interval' => 86400, // 86400秒 = 1天
        'display'  => __( 'Every Day' )
    );
    return $schedules;
}

// 注册具体的库存更新Cron任务
add_action( 'plugins_loaded', 'register_daily_inventory_cron' );
function register_daily_inventory_cron() {
    // 避免重复注册任务
    if ( ! wp_next_scheduled( 'daily_inventory_update_hook' ) ) {
        wp_schedule_event( time(), 'everyday', 'daily_inventory_update_hook' );
    }
}

// 实际执行库存更新的函数
add_action( 'daily_inventory_update_hook', 'run_daily_inventory_update' );
function run_daily_inventory_update() {
    // 这里写入你的库存更新逻辑
    error_log( '每日库存更新任务已执行' );
}

额外需要注意的步骤

  1. 触发Cron系统识别新配置:修改代码并保存后,刷新一次WordPress后台页面(或访问网站前端),这样WordPress才会加载新的调度规则。
  2. 检查WP-Control列表:刷新WP-Control的Cron页面,现在应该能看到everyday自定义调度,以及绑定的daily_inventory_update_hook任务。
  3. 调试技巧:如果还是看不到,可以临时加一段调试代码确认调度是否注册成功:
add_action( 'admin_notices', 'debug_cron_schedules' );
function debug_cron_schedules() {
    $schedules = wp_get_schedules();
    echo '<pre>' . print_r( $schedules, true ) . '</pre>';
}

这段代码会在后台顶部打印所有已注册的调度,你可以检查everyday是否在列表中。

内容的提问来源于stack exchange,提问作者Alexis Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:12:56