Функция wp_page_menu() в WordPress позволяет создавать и отображать список статических страниц блога в виде меню. Она является аналогом функции wp_list_pages(), но с дополнительной возможностью добавления ссылки на главную страницу в начало списка. Это удобный инструмент для генерации меню страниц, которое автоматически обновляется при изменении контента.
wp_page_menu( array $args = array() )
Параметры
Функция wp_page_menu() принимает один параметр — массив аргументов, который позволяет настроить отображение меню. Ниже приведен полный список аргументов, доступных для использования:
'show_home'(bool|string): Определяет, будет ли добавлена ссылка на главную страницу в начале меню. Значениеtrueдобавляет ссылку, аfalse— нет. Также можно указать текст для ссылки на главную страницу. По умолчаниюfalse.'depth'(int): Контролирует уровень вложенности страниц, которые будут включены в меню. Значения:0— показать все уровни вложенных страниц.-1— показать все страницы, но без древовидного отображения.1— показать только дочерние страницы первого уровня.2и более — показать страницы определенного уровня вложенности.
'sort_column'(string): Определяет, по какому полю сортировать страницы. Значения включают:post_title— сортировать по заголовку страницы.menu_order— сортировать по порядку, указанному в админ-панели.post_date— сортировать по дате создания.ID— сортировать по идентификатору записи.post_name— сортировать по альтернативному имени поста. По умолчанию используется'menu_order, post_title'.
'menu_class'(string): CSS-класс для оборачивающего<div>. По умолчанию'menu'.'menu_id'(string): ID для оборачивающего<div>. Добавлено в версии 4.4. По умолчанию пусто.'container'(string): HTML-элемент, который будет оборачивать список страниц. По умолчанию'div'.'include'(string): Показывает только указанные страницы по их ID. Отменяет другие параметры формирования списка. По умолчанию пусто.'exclude'(string): Исключает страницы по их ID из списка. По умолчанию пусто.'exclude_tree'(string): Исключает страницы и их дочерние страницы по их родительскому ID. Добавлено в версии 2.7. По умолчанию пусто.'echo'(bool): Определяет, будет ли результат выведен на экран (true) или возвращен в виде строки (false). По умолчаниюtrue.'link_before'(string): HTML-код, добавляемый перед текстом ссылки. Добавлено в версии 2.7. По умолчанию пусто.'link_after'(string): HTML-код, добавляемый после текста ссылки. Добавлено в версии 2.7. По умолчанию пусто.'before'(string): HTML или текст, добавляемый перед меню. Добавлено в версии 4.4. По умолчанию'<ul>'.'after'(string): HTML или текст, добавляемый после меню. Добавлено в версии 4.4. По умолчанию'</ul>'.'item_spacing'(string): Определяет, сохранять ли переносы строк в HTML-коде меню. Может быть'preserve'или'discard'. Добавлено в версии 4.7. По умолчанию'preserve'.'walker'(object): Экземпляр объекта классаWalker, который строит меню. Добавлено в версии 4.4. По умолчанию используетсяWalker_Page.
Возвращаемое значение
Функция возвращает null или строку, содержащую HTML-код меню. Если параметр 'echo' установлен в false, функция возвращает строку. В противном случае результат выводится на экран.
Пример 1: Добавление ссылки на главную страницу
<h2>Меню страниц</h2>
<?php wp_page_menu( array(
'show_home' => true,
'exclude' => '6,7',
'menu_class' => 'nav-container',
'sort_column' => 'menu_order'
) ); ?>
Этот пример добавляет ссылку на главную страницу в начало меню, исключает страницы с ID 6 и 7, добавляет CSS-класс nav-container и упорядочивает ссылки по порядку меню.
Пример 2: Кастомизация текста ссылки на главную страницу
<?php wp_page_menu( array( 'show_home' => 'Домашняя страница' ) ); ?>
В этом примере ссылка на главную страницу будет отображаться как «Домашняя страница».
Пример 3: Отображение только ссылки на главную страницу
<?php wp_page_menu( array(
'show_home' => true,
'include' => '9999'
) ); ?>
Этот пример выведет только ссылку на главную страницу, исключая остальные страницы.
Примеры расширенного использования
Если вы хотите изменить внешний вид меню, вы можете использовать аргумент 'walker', чтобы передать объект кастомного класса, расширяющего Walker_Page. Это позволяет полностью настроить HTML-вывод меню.
<?php
class My_Custom_Walker extends Walker_Page {
// Кастомизация вывода элементов меню
}
wp_page_menu( array(
'walker' => new My_Custom_Walker(),
) );
?>
Эта конструкция позволит вам полностью контролировать структуру и оформление элементов меню страниц.
CSS классы меню
Функция wp_page_menu() добавляет следующие CSS-классы к элементам меню:
.page_item: Классу добавляется ко всем элементам списка, ведущим на статические страницы..page-item-$ID: Классу добавляется ко всем элементам списка с уникальным ID страницы..current_page_item: Для элемента меню, который соответствует текущей просматриваемой странице..current_page_parent: Для родительской страницы текущей просматриваемой страницы..current_page_ancestor: Для всех страниц, которые находятся на том же уровне, что и просматриваемая страница.
Заключение
Функция wp_page_menu() предоставляет удобный способ создания и отображения меню страниц в WordPress. Благодаря своей гибкости и возможности настроек, она позволяет легко интегрировать меню страниц в любой раздел вашего сайта, будь то шапка, боковая панель или другой элемент шаблона. Параметры функции, такие как show_home, depth, sort_column и другие, дают возможность детально настроить отображение меню в соответствии с вашими требованиями. Используя wp_page_menu(), вы можете создать эффективное и автоматически обновляемое меню страниц, которое улучшит навигацию на вашем сайте и обеспечит удобный доступ к ключевым разделам.