ACF Создать поле которое может редактировать только админ
Скажите, есть ли возможность создать в админки поле плагина ACF типа Текст, редактирование значения которого в админке будет возможно только для пользователей ранга администратор, или других званий?


Используйте фильтр acf/load_field для этих целей, например:
function acf_field_read_only( $field ) { $field['readonly'] = ! current_user_can('manage_options'); return $field; } add_filter( 'acf/load_field/name=my_key_field', 'acf_field_read_only' );Где
my_key_fieldнадо сменить на своё имя поля.function acf_field_read_only( $field ) { $field['readonly'] = ! current_user_can('manage_options'); return $field; } add_filter( 'acf/load_field/key=user_rank', 'acf_field_read_only' );Что-то не работает это добавление в function.php. Есть пользователи с ролями Author/Contributor/Editor и заходя в свои учетные записи данные пользователи всё ещё имеют возможности менять значения в поле user_rank
Файл должен быть
functions.php, а неfunction.php- это важно, проверьте.Да, там. Описка. Функция не отрабатывает. Поле продолжает быть доступным всем для редактирования.
Поправил код и проверил дополнительно - должно работать
Интересная штука, поле вроде как и стало для других ролей кроме Админа статусом - "только на чтение". Но если, открыть окно разработчика, и в данном поле физически поставить свою надпись в value а потом Обновить, то оно нормально обновляет это дело. Это похоже на дыру... Возможно можно не выводить данное поле, для тех кому оно не предназначается для исправления ?

Можно попробовать тогда вот так:
add_filter( 'acf/pre_render_fields', function ( $fields ) { foreach ( $fields as $index => $field ) { if ( $field['name'] === 'my_key_field' && ! current_user_can( 'manage_options' ) ) { unset( $fields[ $index ] ); } } return $fields; } );К сожалению, это не работает. Даже со статусом автор, пользователь имеет возможность править такие поля
Каким образом он сможет это сделать, если поле даже не отображается?
В любом случае можно использовать хук
acf/validate_value, чтобы не дать сохранить таким ролям поле.