我认为这可以满足您的需求:
这是过滤器文档http://www.advancedcustomfields.com/resources/filters/acf_update_value/
您可以选择所需的任何筛选器选项,但如果您使用前两个选项中的onw
add_filter(\'acf/update_value\', \'mr_acf_prevent_update\', 10, 3);
add_filter(\'acf/update_value/type=text\', \'mr_acf_prevent_update\', 10, 3);
您必须在回调函数上编写更多的条件。
如果你使用这两种方法中的一种,你不需要
// example with the field name
add_filter(\'acf/update_value/name=cell-phone\', \'mr_acf_prevent_update\', 10, 3);
// example with the field key
add_filter(\'acf/update_value/key=field_527bb4af7edde\', \'my_acf_load_field\', 10, 3);
以及执行此操作的回调
function mr_acf_prevent_update( $value, $post_id, $field ) {
if ( current_user_can( \'manage_options\' ) || get_field( $field[\'name\'], $post_id ) == \'\' ) {
return $value;
} else {
return get_field( $field[\'name\'], $post_id );
}
}
它是可以改进的,虽然很难看,但它确实有效!