Кто-нибудь знает, как добавить разделитель меню администратора? Я нашел это, но это не помогло.
Есть идеи?
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Если кто-то все еще ищет ответ на этот вопрос, этот плагин может справиться с этой задачей.
Спасибо, Майк, я всю ночь проверял, изучая глобальное меню var, но мне не удалось добавить разделитель, теперь мне намного понятнее, как работают меню в wp.
Привет @user1147 : Да, их очень сложно понять. Когда мне впервые пришлось это делать, у меня ушло довольно много времени, и я до сих пор борюсь с ними. Вот почему я написал эти функции, чтобы теперь я мог делать это простым способом! В любом случае, рад, что мой ответ помог.
@MikeSchinkel Этот метод не работает для меня с WordPress 3.3.1.
@JimGeurts — у меня тоже не работает :/
Я только что протестировал его, и он «работает» в версии 4.5, но WordPress решил избавиться от линий, которые просто больше не появляются. Я думаю, что решение состоит в том, чтобы добавить CSS, но я не могу понять, какой CSS добавить, так как я бэкэнд-разработчик и не умею работать с CSS. Может еще кто подскажет?
Я просто пытаюсь добавить разделитель меню администратора. Прежде чем опубликовать вопрос, я попытался использовать
add_menu_page()
.Похоже, МайкШинкель хорошо вас прикрыл. Извините за недоразумение. Удачи!
Нет никакой разницы с существующим принятым ответом, за исключением того, что вы не даете никаких объяснений. Пожалуйста, прочитайте Как ответить.
@toscho: Ну, это работает для меня, а принятый ответ — нет.
Вот быстрый и грязный способ получить то, что вы хотите.
Задний план
WordPress хранит разделы меню администратора в глобальном массиве с именем
$menu
. Чтобы добавить разделитель, вы добавляете элемент в$menu
массив, используя индекс, который находится между индексами параметров, которые вы хотите разделить.Использование
add_admin_menu_separator()
функцииИтак, я написал функцию для инкапсуляции логики, которую я назвал
add_admin_menu_separator()
. Вам нужно будет выбрать номер индекса массива, который выше, чем параметр, после которого вы хотите добавить разделитель, а затем вызвать функцию,add_admin_menu_separator()
передающую указанный индекс в качестве параметра.Например:
Сама
add_admin_menu_separator()
функцияВот определение функции
add_admin_menu_separator()
, которую вы можете скопировать вfunctions.php
файл вашей темы. Да, это загадочно, но также и код, который создает и использует глобальный$menu
массив. (К счастью, в конечном итоге он будет объявлен устаревшим, но, вероятно, это произойдет через несколько лет.)Поиск индекса в
$menu
том, что вам нужноЧтобы выяснить, какой номер индекса вам нужен, вы можете сделать
var_dump()
из$GLOBALS['menu']
хукаadmin_init
. Вот небольшой код, который вы можетеfunctions.php
временно добавить в файл вашей темы, чтобы посмотреть, какие значения. Это будет работать только при запросе URL-адреса, начинающегося с/wp-admin/
(но обязательно используйте FTP, а не встроенный редактор тем, иначе вы потеряете доступ к своему сайту, по крайней мере, до тех пор, пока не получите FTP-доступ кfunctions.php
файлу вашей темы!) :Смотрите также:
Кстати, вы можете найти эти ссылки полезными в целом для работы с меню администратора:
wp-admin-menu-classes.php
Хотя мои классы меню администратора в настоящее время не предлагают простой способ добавления разделителей, я думаю, что теперь добавлю это, когда у меня будет время.
Это просто как:
Примечание. Положение разделителя по умолчанию (
$menu[4]
) может отличаться в зависимости от того, какую конфигурацию вы (или ваши плагины) выполнили до этого хука.Конечно, вы также можете настроить
menu-top-first
иmenu-top-last
самоанализ классов.Были некоторые проблемы с тем, что разделители не добавлялись, это было связано с тем, как WordPress удаляет повторяющиеся разделители. Добавление
ksort($menu);
в нижнюю часть функции исправило проблему.Это основано на ответе MastaBaba, но ничего не заменяет в указанной вами позиции — после этого просто добавляется разделитель.
Также использует анонимную функцию, поэтому она совместима только с PHP версии 5.3 и выше.
Вы можете просто добавить это в functions.php
Где 49 — позиция разделителя. Вы должны помнить, что позиция разделителя может заменить ваш элемент меню, если он имеет ту же позицию.
Немного сложно определить, что вы пытаетесь сделать, но я думаю, вы хотите добавить запись верхнего уровня в меню администратора WordPress.
См. эту документацию в Кодексе WordPress.
Короче говоря, вы ищете использование
add_menu_page()
функции, которая принимает ряд аргументов и отображает дополнительный элемент в административном меню в качестве родственного элемента «Панель управления», «Сообщения», «Медиа» и т. д.Надеюсь, я понял это правильно. 🙂
Ниже показано действие для WordPress, которое запускается при отображении меню администратора. Меню администратора представляет собой массив, и все, что вы здесь делаете, это добавляете элемент массива, определяющий разделитель, в указанную вами позицию.
Отсюда : _
Обратите внимание, что, хотя это больше похоже на принятый в настоящее время ответ, принятый в настоящее время ответ не сработал для меня (и, судя по комментариям, для некоторых других).