ACF:如何更改默认值/设置

时间:2016-06-09 05:54:38

标签: php wordpress default advanced-custom-fields

使用高级自定义字段

  1. 假设我想要一个图像字段,我需要它输出数组作为默认
  2. 或者我随时使用 wysiwyg ,我不希望它显示媒体按钮
  3. 需要 textarea ?我想要没有格式化作为默认值。
  4. 如何更改默认值

    functions.php的所有插件或代码段示例?

    谢谢!

    约翰

2 个答案:

答案 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']}

保存设置后,他们将获取您的自定义值。