WordPress. Создание меню для классических тем

Добавление в административную часть

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 не задан вообще, тогда:

  1. Сначала функция попробует вывести меню по ID, ярлыку или имени, указанному в параметре menu.
  2. Иначе – первое непустое меню, созданное в админке.
  3. Иначе – выполнится функция в параметре fallback_cb (или же функция wp_page_menu(), как значение по умолчанию).
  4. Иначе – ничего.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *