ACF:如何更改默认值/设置
ACFs : How to change default values / settings
使用高级自定义字段,
- 说任何时候我想要一个 图像字段 ,我需要它输出一个 数组作为默认值 。
- 或者任何时候我使用 所见即所得,我不希望它显示 媒体按钮
- 需要 textarea 吗?我希望它默认 无格式 。
我如何更改这些默认值?
functions.php 有任何插件或片段示例吗?
谢谢!!
约翰
我正在使用 ACF Pro,所以我的回答不适合你...
对于您的前端字段,您可以使用 acf/format_value
钩子,并更改您想要的 $field
参数:
文本区域示例:
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
:
所见即所得示例:
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']}
好的,要强制设置 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']}
保存设置时,它们将采用您的自定义值。
使用高级自定义字段,
- 说任何时候我想要一个 图像字段 ,我需要它输出一个 数组作为默认值 。
- 或者任何时候我使用 所见即所得,我不希望它显示 媒体按钮
- 需要 textarea 吗?我希望它默认 无格式 。
我如何更改这些默认值?
functions.php 有任何插件或片段示例吗?
谢谢!!
约翰
我正在使用 ACF Pro,所以我的回答不适合你...
对于您的前端字段,您可以使用 acf/format_value
钩子,并更改您想要的 $field
参数:
文本区域示例:
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
:
所见即所得示例:
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']}
好的,要强制设置 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']}
保存设置时,它们将采用您的自定义值。