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

如何仅在Shop Orders中启用ACF元框?现有代码条件不生效

解决ACF仅在Shop Orders中启用元框的问题

你之前的代码失效是因为admin_init钩子触发时机过早,此时当前编辑的文章类型还未初始化,get_post_type()无法正确获取到shop_order,导致条件判断不生效。

正确的做法是直接利用ACF提供的acf/settings/remove_wp_meta_box过滤器,在回调函数中动态判断当前场景:

add_filter('acf/settings/remove_wp_meta_box', 'enable_acf_metabox_for_shop_orders');
function enable_acf_metabox_for_shop_orders($remove) {
    // 获取当前后台屏幕信息
    $screen = get_current_screen();
    // 判断当前是否为Shop Orders编辑页面
    if ($screen && $screen->post_type === 'shop_order') {
        return false; // 启用ACF元框
    }
    return true; // 其他文章类型保持禁用
}

或者通过全局$post对象判断(适用于编辑已有订单的场景):

add_filter('acf/settings/remove_wp_meta_box', 'enable_acf_metabox_for_shop_orders');
function enable_acf_metabox_for_shop_orders($remove) {
    global $post;
    if ($post && $post->post_type === 'shop_order') {
        return false;
    }
    return true;
}

这两种方式都能在ACF决定是否移除元框的关键节点,准确判断当前页面类型,从而实现仅在Shop Orders中启用ACF元框的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:01:07