Php 拆下滤清器&x27;格式#u值';从高级自定义字段中的灵活字段类型
我正在进行一些灵活字段类型的定制。我想做的是完全删除格式\u值过滤器,并在加载\u值后运行我自己的过滤器 我尝试了下面的代码来删除我确信可以工作的过滤器。但是,唉。我做错了什么Php 拆下滤清器&x27;格式#u值';从高级自定义字段中的灵活字段类型,php,wordpress,advanced-custom-fields,Php,Wordpress,Advanced Custom Fields,我正在进行一些灵活字段类型的定制。我想做的是完全删除格式\u值过滤器,并在加载\u值后运行我自己的过滤器 我尝试了下面的代码来删除我确信可以工作的过滤器。但是,唉。我做错了什么 remove_filter('acf/format_value/type=flexible_content',数组('acf_field_flexible_content','format_value'),10) 参考: 以下是有关过滤器的信息: 在$wp_filter global中,以下是参考: [acf/form
remove_filter('acf/format_value/type=flexible_content',数组('acf_field_flexible_content','format_value'),10)代码>
参考:
以下是有关过滤器的信息:
在$wp_filter global中,以下是参考:
[acf/format_value/type=flexible_content] => WP_Hook Object
(
[callbacks] => Array
(
[10] => Array
(
[000000004e0e085b00000000706fba6bformat_value] => Array
(
[function] => Array
(
[0] => acf_field_flexible_content Object
(
[name] => flexible_content
[label] => Flexible Content
[category] => layout
[defaults] => Array
(
[layouts] => Array
(
)
[min] =>
[max] =>
[button_label] => Add Row
)
[l10n] => Array
(
[layout] => layout
[layouts] => layouts
[remove] => remove {layout}?
[min] => This field requires at least {min} {identifier}
[max] => This field has a limit of {max} {identifier}
[min_layout] => This field requires at least {min} {label} {identifier}
[max_layout] => Maximum {label} limit reached ({max} {identifier})
[available] => {available} {label} {identifier} available (max {max})
[required] => {required} {label} {identifier} required (min {min})
[layout_warning] => Flexible Content requires at least 1 layout
)
[public] => 1
)
[1] => format_value
)
[accepted_args] => 3
)
)
[4000] => Array
(
[my_acf_format_valuexxxx] => Array
(
[function] => my_acf_format_valuexxxx
[accepted_args] => 3
)
)
)
[iterations:WP_Hook:private] => Array
(
)
[current_priority:WP_Hook:private] => Array
(
)
[nesting_level:WP_Hook:private] => 0
[doing_action:WP_Hook:private] =>
)
因此,我最终向ACF提出了关于这一点的支持票,并得到了很好的回应和解决方案供参考:
remove_filter函数要求将objct作为>数组目标的第一个参数,而不是字符串。您可以获得灵活的内容字段
反对意见如下:
acf\u get\u field\u type($field\u type)
在实际使用中,您的代码应该如下所示:
测试和工作:-)我要补充的是,您必须在acf/init
hook中使用它。否则它将不起作用,或者如果您使用init
hook,您将得到致命的,因为没有定义acf\u get\u field\u type
。
(我对gallery field使用了相同的方法)
remove_filter('acf/format_value/type=flexible_content',array(acf_get_field_type('flexible_content'), 'format_value'), 10 );
add_action('acf/init', function () {
remove_filter('acf/format_value/type=gallery', array(acf_get_field_type('gallery'), 'format_value'), 10);
});