Удалить "Редактировать профиль" из меню админ-панели

15 июл. 2011 г., 13:43:04
Просмотры: 13.9K
Голосов: 8

Как я могу удалить подменю "Редактировать профиль" под пунктом "my-account-with-avatar" в админ-панели, сохранив при этом аватар и кнопку выхода?

0
Все ответы на вопрос 3
9
12

Существует хук remove_menu для панели меню администратора.

Класс, в который нужно добавить хук — $wp_admin_bar. Вы можете увидеть функцию удаления здесь и протестировать её, так как документации по ней нет (строка 86). Она должна работать с ID подменю.

http://core.trac.wordpress.org/browser/tags/3.2.1/wp-includes/class-wp-admin-bar.php

Если вы мне не поверили, вот код.........

function ya_do_it_admin_bar_remove() {
        global $wp_admin_bar;

        /* **edit-profile — это ID** */
        $wp_admin_bar->remove_menu('edit-profile');
 }

add_action('wp_before_admin_bar_render', 'ya_do_it_admin_bar_remove', 0);
16 июл. 2011 г. 02:18:44
Комментарии

Нет отдельного хука для "редактирования моего профиля". Либо я теряю всё меню аккаунта с выходом, редактированием профиля и аватара (если есть), либо оставляю всё. В итоге, мне пришлось редактировать admin-bar.php

Sean Lee Sean Lee
17 июл. 2011 г. 22:05:29

Приведённый выше код использует ID - пункт подменю точно имеет ID. Не взламывайте основные файлы, они перезаписываются при обновлениях, не говоря уже о сотне других причин.

Wyck Wyck
17 июл. 2011 г. 22:39:10

К сожалению, нет никакого индивидуального ID для редактирования моего профиля. Кстати, этот элемент находится в admin-bar.php. Если только вы не нашли что-то другое, что я упустил. Пожалуйста, дайте мне знать.

Sean Lee Sean Lee
18 июл. 2011 г. 02:20:24

Я знаю, для чего это нужно, и у него есть ID. Выведите массив меню админ-панели, и вы увидите его. Также вы можете увидеть его в основном файле, на который я ссылался выше: $child = array( 'id' => $id, 'title' => $title, 'href' => $href );

Wyck Wyck
18 июл. 2011 г. 06:02:17

Добавил код в исходное сообщение, так как вы, кажется, мне не верите... но спасибо за минус...

Wyck Wyck
18 июл. 2011 г. 06:29:07

Спасибо за код. Дело не в том, что я вам не верю — я пробовал, и тогда это не сработало. К тому же, у меня не было права ставить минусы, наверное, это кто-то другой. Теперь я вижу плюс, и это не моя заслуга.

Sean Lee Sean Lee
22 июл. 2011 г. 22:11:53

Теперь, когда у меня достаточно прав, вот проверка, которую я вам обещал. Спасибо.

Sean Lee Sean Lee
2 авг. 2011 г. 11:05:25

Вау! Этот хук работает идеально. Большое спасибо @Wyck. 100% работает на WordPress 3.8.1.

Thein Hla Maw Thein Hla Maw
23 мар. 2014 г. 20:01:28

Не самое лучшее решение, пользователь все еще может редактировать свой аккаунт, добавив profile.php в URL...

csandreas1 csandreas1
28 июн. 2018 г. 00:41:46
Показать остальные 4 комментариев
1

WordPress представил новые элементы (nodes).

Я искал способ полностью удалить "блок учетной записи пользователя" и добавить простую кнопку выхода:

//http://codex.wordpress.org/Function_Reference/get_nodes
//http://codex.wordpress.org/Function_Reference/add_node

add_action( 'admin_bar_menu', 'remove_my_account', 999 );
function remove_my_account( $wp_admin_bar ) {
    $wp_admin_bar->remove_node( 'my-account' );
}


add_action( 'admin_bar_menu', 'add_logout', 999 );
function add_logout( $wp_admin_bar ) {
    $args = array(
        'id'     => 'logout',           // ID существующего дочернего элемента (New > Post)
        'title'  => 'Выйти',            // изменяем заголовок существующего элемента
        'parent' => 'top-secondary',    // устанавливаем родителя
    );
    $wp_admin_bar->add_node( $args );
}
3 дек. 2013 г. 17:37:41
Комментарии

Как можно отобразить здесь название блога, имя, фамилию, а также кнопку выхода

Amjad Amjad
18 окт. 2016 г. 00:00:08
1

Я не уверен, можно ли это удалить (не проверял), но вы можете добиться того же, используя CSS, чтобы скрыть ссылку "Редактировать профиль". Элемент списка имеет ID 'wp-admin-bar-edit-profile', который можно использовать для его скрытия. Вот HTML-код, используемый в админ-баре:

<li id="wp-admin-bar-edit-profile" class="">
  <a href="http://www.example.com/wp-admin/profile.php">Редактировать мой профиль</a>
</li>

Я использую следующий CSS:

#wp-admin-bar-edit-profile { display: none }

Это скрывает ссылку в админ-баре, не затрагивая другие элементы. Добавьте этот фрагмент CSS в файл style.css вашей темы, и ссылка будет скрыта в админ-баре при просмотре сайта. Скрытие её в админ-баре при работе в бэкенде WordPress требует больше усилий и может быть бессмысленным, так как ссылка на профиль также есть в меню слева.

15 июл. 2011 г. 19:30:10
Комментарии

Скрывать не самое чистое решение. Как насчет перезаписи? Есть ли способ переписать это?

Sean Lee Sean Lee
15 июл. 2011 г. 20:49:27