Добавление в административную часть
add_menu_page()
Функция добавляет элемент административного меню верхнего уровня и страницу к нему.
Функция должна быть использована внутри одного из следующих хуков:
admin_menu
network_admin_menu
– при создании страницы меню WordPress Мультсайт.
Если у вас возникает ошибка «Извините, вам не разрешено просматривать эту страницу» («You do not have sufficient permissions to access this page») плюс страница отображается в самом низу админ-меню, то как раз это означает, что вы подключили функцию на неправильный хук, вероятнее всего слишком рано.
Параметры
$page_title(строка) То, что будет отображаться в заголовке вкладки браузера при переходе на эту страницу.
$menu_title(строка) То, как будет называться непосредственно элемент в меню.
$capability(строка) Права, которые необходимо иметь пользователю для просмотра этой страницы.
$menu_slug(строка) Часть URL этой страницы. Должен быть уникальным, содержать только буквы нижнего регистра латинского алфавита, цифры, дефисы и символы подчёркивания, всё остальное будет очищено функцией sanitize_key()
$function(строка) Название функции, которая будет выводить HTML этой страницы либо в виде строки, например true_function
, либо в виде массива, если вы хотите использовать метод класса array( $this, 'true_function' )
$icon_url(строка) Иконка меню. Можно задать тремя способами
$positionРасположение пункта меню по отношению к другим пунктам меню в админке. Чем меньше цифра, тем выше пункт меню, и наоборот.
Пример использования add_menu_page()
add_action( 'admin_menu', 'true_top_menu_page', 25 ); function true_top_menu_page(){ add_menu_page( 'Настройки слайдера', // тайтл страницы 'Слайдер', // текст ссылки в меню 'manage_options', // права пользователя, необходимые для доступа к странице 'true_slider', // ярлык страницы 'true_slider_page_callback', // функция, которая выводит содержимое страницы 'dashicons-images-alt2', // иконка, в данном случае из Dashicons 20 // позиция в меню ); } function true_slider_page_callback(){ echo 'привет'; }
Вывод меню на сайте
wp_nav_menu( array $args = array() )
Прежде всего функция wp_nav_menu()
чекает параметр theme_location
и выводит соответствующее меню, ассоциирующееся с этой областью темы. Если это области не существует или нет меню, присвоенного к этой области, то будет выполнены функция в параметре fallback_cb
.
Если же параметр theme_location
не задан вообще, тогда:
- Сначала функция попробует вывести меню по ID, ярлыку или имени, указанному в параметре
menu
. - Иначе – первое непустое меню, созданное в админке.
- Иначе – выполнится функция в параметре
fallback_cb
(или же функцияwp_page_menu()
, как значение по умолчанию). - Иначе – ничего.