我正在使用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']}
$field['media_upload']
必须设置为零。如果我在你的片段中这样做,它不起作用。我去看了一下 wysiwyg.php,将其设置为零就可以了。但目标是在不触碰原始文件的情况下进行工作的黑客方式... 我已经尝试了不同的调整,但没有成功... 尽管如此,我并不是一个 PHP/WordPress 过滤器/动作英雄。 - jDelforge