Функция 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()
, вы можете создать эффективное и автоматически обновляемое меню страниц, которое улучшит навигацию на вашем сайте и обеспечит удобный доступ к ключевым разделам.