ACF以编程方式加载字段组

时间:2018-09-10 作者:Ryan Dorn

我想根据一组条件和NOT 使用Custom Location Rules. 简要用例/基本原理:

如果CPT A 存在和Theme Option Y 为1,则显示Field Group 1 在…上CPT A 在wp admin中,我希望以编程方式设置规则,因为我不希望用户能够通过字段组选项覆盖/破坏位置规则我一直在四处闲逛,根据一些线索,这似乎是acf/get_field_group 这将是一条路要走,但它没有记录在案。

是否有任何方法可以使用过滤器挂钩根据编程条件重写字段组的位置规则?

1 个回复
最合适的回答,由SO网友:Ryan Dorn 整理而成

如果有人需要它,这符合我的需要:

add_filter(\'acf/get_field_group\', \'my_change_field_group\');
function my_change_field_group($group) {

    $get_current_screen = get_current_screen();
    $get_current_post_type = $get_current_screen->post_type;
    $my_option = get_field(\'my-option\',\'option\');

    if (
        $get_current_post_type == \'my-cpt\' &&
        $my_option == \'stuff\' &&
        $group[\'key\'] == \'group_123456789\'
    ) {
        $group[\'location\'] = array(
            array(
                array(
                    \'param\' => \'post_type\',
                    \'operator\' => \'==\',
                    \'value\' => \'my-cpt\',
                ),
            ),
        );
    }
    return $group;
};

结束
ACF以编程方式加载字段组 - 小码农CODE - 行之有效找到问题解决它

ACF以编程方式加载字段组

时间:2018-09-10 作者:Ryan Dorn

我想根据一组条件和NOT 使用Custom Location Rules. 简要用例/基本原理:

如果CPT A 存在和Theme Option Y 为1,则显示Field Group 1 在…上CPT A 在wp admin中,我希望以编程方式设置规则,因为我不希望用户能够通过字段组选项覆盖/破坏位置规则我一直在四处闲逛,根据一些线索,这似乎是acf/get_field_group 这将是一条路要走,但它没有记录在案。

是否有任何方法可以使用过滤器挂钩根据编程条件重写字段组的位置规则?

1 个回复
最合适的回答,由SO网友:Ryan Dorn 整理而成

如果有人需要它,这符合我的需要:

add_filter(\'acf/get_field_group\', \'my_change_field_group\');
function my_change_field_group($group) {

    $get_current_screen = get_current_screen();
    $get_current_post_type = $get_current_screen->post_type;
    $my_option = get_field(\'my-option\',\'option\');

    if (
        $get_current_post_type == \'my-cpt\' &&
        $my_option == \'stuff\' &&
        $group[\'key\'] == \'group_123456789\'
    ) {
        $group[\'location\'] = array(
            array(
                array(
                    \'param\' => \'post_type\',
                    \'operator\' => \'==\',
                    \'value\' => \'my-cpt\',
                ),
            ),
        );
    }
    return $group;
};

相关推荐

添加到数组并通过do_action/Apply_Filters传递它

作为练习,我正在使用PHPclass to add meta boxes 我在GitHub上找到了。我只是复制了代码,现在我正在玩它来理解它。其工作原理如下:包含该类的文件包含在init中。在该文件内部,但在类外部,有一个空数组$meta_boxes 已初始化之后,使用apply_filters. 我猜是apply_filters 使用而不是do_action 因为后者不返回任何内容——$meta_boxes = apply_filters( \'cmb_meta_boxes\', $meta_boxes