使用高级自定义字段
如何更改默认值?
functions.php的所有插件或代码段示例?
谢谢!
约翰
答案 0 :(得分:2)
我正在使用ACF Pro,所以我的答案对你不起作用......
对于前面的字段,您可以使用acf/format_value
挂钩,并更改所需的$field
参数:
Textarea示例:
add_filter('acf/format_value/type=textarea', 'my_custom_acf_filter_textarea', 1, 3);
function my_custom_acf_filter_textarea($value, $post_id, $field){
remove_filter('acf/format_value/type=textarea', 'my_custom_acf_filter_textarea', 1);
$field['new_lines'] = '';
$newvalue = acf_format_value($value, $post_id, $field);
return $newvalue;
}
图片示例:
add_filter('acf/format_value/type=image', 'my_custom_acf_filter_image', 1, 3);
function my_custom_acf_filter_image($value, $post_id, $field){
remove_filter('acf/format_value/type=image', 'my_custom_acf_filter_image', 1);
$field['return_format'] = 'array';
$newvalue = acf_format_value($value, $post_id, $field);
return $newvalue;
}
请注意,您还可以使用此挂钩强制选择特定字段:
acf/format_value/name={$field['_name']}
acf/format_value/key={$field['key']}
对于后端显示,请使用acf/prepare_field
:
WYSIWYG示例:
add_filter('acf/prepare_field/type=wysiwyg', 'my_custom_acf_filter_wysiwyg', 1);
function my_custom_acf_filter_wysiwyg($field){
remove_filter('acf/prepare_field/type=wysiwyg', 'my_custom_acf_filter_wysiwyg', 1);
$field['media_upload'] = 0;
return $field;
}
对于管理员显示,您还可以使用以下内容定位特定字段:
acf/prepare_field/name={$field['name']}
acf/prepare_field/key={$field['key']}
答案 1 :(得分:1)
好的,为了强制设置ACF字段,你应该使用另一个名为acf/update_field/
的钩子。它的工作原理如下:
add_filter('acf/update_field/type=wysiwyg', 'my_custom_acf_filter_wysiwyg', 1);
function my_custom_acf_filter_wysiwyg($field){
$field['media_upload'] = 0;
return $field;
}
您可以将这些其他用于目标特定字段:
acf/update_field/name={$field['name']}
acf/update_field/key={$field['key']}
保存设置后,他们将获取您的自定义值。