Как скрыть меню Advanced Custom Fields в админ-панели WordPress
Создали поля в Advanced Custom Fields, но боитесь, что клиент случайно что-то удалит? Скроем меню ACF, чтобы повысить надёжность работы сайта. 🚀
Чтобы скрыть меню ACF у всех пользователей достаточно воспользоваться следующим сниппетом.
1 2 3 4 5 |
add_action( 'admin_menu', 'remove_acf_menu', 15 ); function remove_acf_menu() { remove_menu_page( 'edit.php?post_type=acf' ); } |
Можем доработать сниппет и скрывать для всех, кроме администраторов.
1 2 3 4 5 6 7 |
add_action( 'admin_menu', 'remove_acf_menu', 15 ); function remove_acf_menu() { if ( ! current_user_can( 'manage_options' )) { remove_menu_page( 'edit.php?post_type=acf' ); } } |
Если и этого мало, то можем сделать сниппет ещё гибче и скрывать для определённого списка пользователей.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
add_action( 'admin_menu', 'remove_acf_menu', 15 ); function remove_acf_menu() { //Список логинов пользователей, кому доступно меню ACF $allowed_users = array( 'user1', 'irina', 'egor' ); $current_user = wp_get_current_user(); if ( ! in_array( $current_user->user_login, $allowed_users )) { remove_menu_page( 'edit.php?post_type=acf' ); } } |
Здравствуйте. А не подскажете, куда именно вставлять этот код? Вставил в файл functions.php моей темы, но ничего не изменилось.
И данный код скроет ACF поля на странице/записи и т.п. в админке?
Здравствуйте, Алексей!
Данный код скроет пункт «Группы полей» из левого черного меню https://i.imgur.com/sb9c317.png .
Вставить можно в functions.php активной темы или воспользоваться плагином Code Snippets ( https://ru.wordpress.org/plugins/code-snippets/ ).