Intereting Posts
Правильный крючок для перенаправления посетителей с интерфейсом, соблюдая при этом плагины api для отдыха? Что более безопасные возможности проверки пользователя или проверка роли пользователя в разработке плагина WordPress Создайте функцию, которая переписывает мой URL-адрес для включения категории Пользовательский тип сообщения Archive.php Повторить одну категорию как заголовок, когда сообщение имеет несколько категорий? Как выбивать пользовательскую таксономию? Добавление div в содержание страницы WordPress Интеграция почтовых тегов на странице Редактировать страницу с помощью qTranslate Проблема при загрузке javascript в нижнем колонтитуле Обратная хронология почтового листинга Ошибки проверки W3C (завершающие косые черты) Как переписать 404 на домашнюю страницу с помощью htaccess? Альтернативные стили сообщений на главной странице Должен ли я использовать SVN или Git? Удалить опции из всех блогов на удалении плагина из сети / мультисайта

Изменить ссылку администратора

Начиная с line 474 из /wp-includes/admin-bar.php существует функция, объявленная как следующая:

function wp_admin_bar_new_content_menu( $wp_admin_bar )

Что он делает, он генерирует элемент « + New вместе с любыми настраиваемыми типами сообщений, для которых пользователь имеет функции edit_posts . Фактический элемент верхнего меню + New значения по умолчанию для posts так как он первый вызван в массиве (я считаю, что так оно и работает). Я бы хотел изменить эту первую + New ссылку на что-то еще. В нашей настройке нам нужно предоставить пользователям edit_posts возможность управлять страницами дополнительных настраиваемых полей полей, но они не дают им доступ к самим сообщениям (которые нам просто нужно было скрывать от системы меню). Немного фанки, но для нас это больше касается удобства использования.

Помимо всех помех, о которых я говорил выше, вы можете изменить существующую ссылку меню на основе идентификатора самого элемента (который в этом случае является new-content ), или мне нужно будет уничтожить и перестроить меню? Я просто хочу изменить этот атрибут href на # . Благодаря!

Раньше я не работал с администратором. Однако я нашел ваш вопрос интересным и решил посмотреть. Если вы добавите функцию для обработки крюка действия «admin_bar_menu» и установите приоритет выше 70, у вас будет доступ к необработанным узлам admin_bar_menu, где вы можете изменить свойства, к которым вы пытаетесь получить доступ. Ниже приведен подробный набор примеров того, как вы можете манипулировать панель меню администратора из файла functions.php темы.

 add_action( 'admin_bar_menu', 'customize_my_wp_admin_bar', 80 ); function customize_my_wp_admin_bar( $wp_admin_bar ) { //Get a reference to the new-content node to modify. $new_content_node = $wp_admin_bar->get_node('new-content'); // Parent Properties for new-content node: //$new_content_node->id // 'new-content' //$new_content_node->title // '<span class="ab-icon"></span><span class="ab-label">New</span>' //$new_content_node->parent // false //$new_content_node->href // 'http://www.somedomain.com/wp-admin/post-new.php' //$new_content_node->group // false //$new_content_node->meta['title'] // 'Add New' //Change href $new_content_node->href = '#'; //Update Node. $wp_admin_bar->add_node($new_content_node); //Remove an existing menu item. $wp_admin_bar->remove_menu('new-post'); // Properties for new-post node: //$new_content_node->id // 'new-post' //$new_content_node->title // 'Post' //$new_content_node->parent // 'new-content' //$new_content_node->href // 'http://www.somedomain.com/wp-admin/post-new.php' //$new_content_node->group // false //$new_content_node->meta // array() // Adding a new custom menu item that did not previously exist. $wp_admin_bar->add_menu( array( 'id' => 'new-custom-menu', 'title' => 'Custom Menu', 'parent'=> 'new-content', 'href' => '#custom-menu-link',) ); } 

Если вы добавите это в свой файл functions.php, обратите внимание на следующие изменения в панели меню администратора:

  1. + Новая ссылка теперь '#'
  2. Ссылка для новой публикации больше не указана.
  3. Добавлена ​​новая ссылка на меню, которая называется Custom Menu Link, указывающая на «# custom-menu-link»

С наилучшими пожеланиями,

Дэвид Кэрролл

Чтобы добавить к Дэвиду Кэрроллу замечательный ответ (спасибо!), Я должен сказать, что для получения имени узла (имени slug) существующего меню панели управления и, таким образом, возможности их изменения, вы должны посмотреть в коде этого нового, контекстного меню.

У ul#wp-admin-bar-new-content-default li есть все удостоверения личности, которые заканчиваются там именем. Пример: li#wp-admin-bar-new-post или li#wp-admin-bar-new-media где new-post или new-media – это имя, которое вы можете использовать в функции get_node() .

Для моей цели я добавляю, чтобы изменить имя ссылки на новое сообщение на пользовательский.

 //Get a reference to the new-post node to modify. $new_post_node = $wp_admin_bar->get_node('new-post'); //Change title $new_post_node->title = __('Interventions', 'NAME-OF-YOUR-THEME'); //Update Node. $wp_admin_bar->add_node($new_post_node);