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

WordPress调用add_action时出现call_user_func_array回调未找到错误怎么办

错误根因

你定义的wp_api_savee_prices_metabox、wp_api_price_metabox_handler两个回调函数都嵌套在wp_api_add_price_metabox函数内部,属于局部作用域函数。全局挂载save_post钩子时,外层的wp_api_add_price_metabox还未执行,内部函数尚未被创建,因此WordPress无法找到对应的回调函数触发报错。

修复方案

将所有回调函数移至全局作用域定义即可解决问题,同时补充WordPress元数据保存所需的安全校验逻辑,避免非法提交、CSRF攻击等问题,修复后完整代码如下:

<?php
// 注册元框
function wp_api_add_price_metabox($post_type, $post)
{
    add_meta_box(
        'wpapimetabox',
        'قیمت مطلب',
        'wp_api_price_metabox_handler',
        'post',
        'normal',
        'default'
    );
}

// 元框渲染回调
function wp_api_price_metabox_handler($post)
{
    // 输出nonce字段做安全校验
    wp_nonce_field('wp_api_save_price_action', 'wp_api_price_nonce');
    // 取出已保存的值回填
    $saved_price = get_post_meta($post->ID, 'wp_api_prices', true);
    ?>
    <label for="txt1">قیمت را وارد کنید:</label>
    <input type="text" id="txt1" name="wp_api_post_prices" value="<?php echo esc_attr($saved_price); ?>">
    <?php
}

// 元数据保存回调
function wp_api_savee_prices_metabox($post_id)
{
    // 跳过自动保存
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    // 校验用户权限
    if (!current_user_can('edit_post', $post_id)) {
        return;
    }
    // 校验nonce防止CSRF攻击
    if (!isset($_POST['wp_api_price_nonce']) || !wp_verify_nonce($_POST['wp_api_price_nonce'], 'wp_api_save_price_action')) {
        return;
    }
    // 过滤输入后保存数据
    if (isset($_POST['wp_api_post_prices'])) {
        update_post_meta($post_id, 'wp_api_prices', sanitize_text_field($_POST['wp_api_post_prices']));
    }
}

add_action('add_meta_boxes', 'wp_api_add_price_metabox', 10, 2);
add_action('save_post', 'wp_api_savee_prices_metabox');

功能验证

替换原有代码后刷新文章编辑页,即可看到价格输入框,提交保存文章后,对应元数据会正常存入数据库,可通过get_post_meta(文章ID, 'wp_api_prices', true)调取保存的价格值。

内容的提问来源于stack exchange,提问作者pouya pazhoohandeh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:24:02