wp_page_menu()

Отображает или извлекает список страниц с возможной ссылкой на главную страницу
Функция WordPress
INT 2.7.0
WordPress Icon

Описание функции

Функция wp_page_menu() отображает или извлекает список страниц с опциональной ссылкой на главную страницу. Она использует функцию wp_list_pages() для создания списка страниц.

Использование

wp_page_menu( array|string $args = array() ): void|string

Функция wp_page_menu() принимает один аргумент — массив или строку аргументов для создания меню страниц. Аргументы передаются в функцию wp_list_pages(), которая генерирует список страниц.

  • $args (массив или строка) — Дополнительные аргументы для генерации меню страниц. См. документацию по функции wp_list_pages() для получения дополнительных аргументов.

Функция возвращает HTML-код меню страниц, если аргумент echo равен false, иначе ничего не возвращает (тип данных void).

<?php
$args = array(
  'sort_column' => 'menu_order, post_title',
  'menu_id' => '',
  'menu_class' => 'menu',
  'container' => 'div',
  'echo' => true,
  'show_home' => 1,
  'link_before' => '',
  'link_after' => '',
  'before' => '',
  'after' => '',
  'item_spacing' => 'discard',
  'walker' => '',
  'child_of' => 0,
  'sort_order' => 'ASC',
  'sort_column' => 'post_title',
  'hierarchical' => true,
  'exclude' => array(),
  'include' => array(),
  'meta_key' => '',
  'meta_value' => '',
  'authors' => '',
  'parent' => -1,
  'exclude_tree' => '',
  'number' => 0,
  'offset' => 0,
  'post_type' => 'page',
  'post_status' => 'publish',
);
$menu = wp_page_menu( $args );
?>

В приведенном выше примере кода используются все доступные параметры функции wp_page_menu(). Вы можете настроить эти параметры в соответствии с вашими потребностями.

Примеры использования

Отображение списка страниц с домашней ссылкой


$args = array(
    'show_home' => true
);
wp_page_menu($args);

Функция wp_page_menu() отображает список страниц с домашней ссылкой. В данном примере используется аргумент show_home со значением true, чтобы отобразить ссылку на главную страницу.

Получение HTML-меню страниц


$args = array(
    'echo' => false
);
$menu = wp_page_menu($args);
echo $menu;

Функция wp_page_menu() может также возвращать HTML-меню страниц вместо его непосредственного вывода. В данном примере используется аргумент echo со значением false, чтобы получить HTML-код меню и сохранить его в переменной $menu. Затем этот код выводится с помощью echo.

Сортировка списка страниц


$args = array(
    'sort_column' => 'post_title'
);
wp_page_menu($args);

Функция wp_page_menu() позволяет сортировать список страниц по различным критериям. В данном примере используется аргумент sort_column со значением post_title, чтобы отсортировать страницы по заголовку.

Настройка внешнего вида меню


$args = array(
    'menu_id' => 'my-menu',
    'menu_class' => 'custom-menu',
    'container' => 'nav'
);
wp_page_menu($args);

Функция wp_page_menu() позволяет настраивать внешний вид меню страниц. В данном примере используются аргументы menu_id и menu_class, чтобы задать идентификатор и класс для элемента, содержащего меню. Также используется аргумент container со значением nav, чтобы обернуть меню в элемент <nav>.

Использование кастомного Walker для списка страниц


class Custom_Walker extends Walker_Page {
    // Кастомный код для отображения страниц
}
$args = array(
    'walker' => new Custom_Walker()
);
wp_page_menu($args);

Функция wp_page_menu() позволяет использовать кастомный Walker для отображения списка страниц. В данном примере создается класс Custom_Walker, который наследуется от Walker_Page и содержит кастомный код для отображения страниц. Затем созданный экземпляр класса передается в аргументе walker.

Вопросы и ответы

Как изменить порядок страниц в меню?

Для изменения порядка страниц в меню можно использовать аргумент sort_column функции wp_page_menu(). По умолчанию, страницы сортируются по полю «menu_order» и «post_title».

Пример использования:


$args = array(
    'sort_column' => 'menu_order, post_title'
);
wp_page_menu($args);

Как добавить класс к элементу меню?

Для добавления класса к элементу меню можно использовать аргумент menu_class функции wp_page_menu(). По умолчанию, класс элемента меню равен «menu».

Пример использования:


$args = array(
    'menu_class' => 'custom-menu-class'
);
wp_page_menu($args);

Как изменить контейнер элемента меню?

Для изменения контейнера элемента меню можно использовать аргумент container функции wp_page_menu(). По умолчанию, контейнер равен «div».

Пример использования:


$args = array(
    'container' => 'nav'
);
wp_page_menu($args);

Как изменить текст ссылки на главную страницу?

Для изменения текста ссылки на главную страницу при использовании функции wp_page_menu() необходимо использовать аргумент show_home. По умолчанию, если этот аргумент не указан, текст ссылки будет «Home». Чтобы изменить текст, нужно передать новое значение в аргумент show_home.


$args = array(
    'show_home' => 'Главная', // новый текст ссылки на главную страницу
);
wp_page_menu($args);

Как добавить HTML перед и после меню?

Для добавления HTML-кода перед и после меню при использовании функции wp_page_menu() необходимо использовать аргументы before и after. По умолчанию, значения этих аргументов равны пустой строке, то есть HTML-код не добавляется. Чтобы добавить HTML, нужно передать соответствующие значения в аргументы before и after.


$args = array(
    'before' => '<div class="menu-wrapper">', // HTML-код перед меню
    'after' => '</div>', // HTML-код после меню
);
wp_page_menu($args);

Как изменить отступы между элементами меню?

Для изменения отступов между элементами меню при использовании функции wp_page_menu() необходимо использовать аргумент item_spacing. По умолчанию, значение этого аргумента равно «discard», что означает, что отступы не сохраняются. Чтобы изменить отступы, нужно передать новое значение в аргумент item_spacing.


$args = array(
    'item_spacing' => 'preserve', // сохранить отступы между элементами меню
);
wp_page_menu($args);

Как изменить порядок сортировки страниц?

Для изменения порядка сортировки страниц в меню, можно использовать параметр sort_column функции wp_page_menu(). По умолчанию, страницы сортируются по полю «menu_order» и «post_title».

Пример использования:

wp_page_menu( array(
    'sort_column' => 'post_date, post_title'
) );

Как исключить определенные страницы из меню?

Для исключения определенных страниц из меню, можно использовать параметр exclude функции wp_page_menu(). В этот параметр передается массив идентификаторов страниц, которые необходимо исключить.

Пример использования:

wp_page_menu( array(
    'exclude' => array( 2, 5, 8 )
) );

Как включить только определенные страницы в меню?

Для включения только определенных страниц в меню, можно использовать параметр include функции wp_page_menu(). В этот параметр передается массив идентификаторов страниц, которые необходимо включить.

Пример использования:

wp_page_menu( array(
    'include' => array( 3, 6, 9 )
) );

Функция wp_page_menu() является удобным инструментом для отображения или получения списка страниц в WordPress. Она позволяет настраивать порядок сортировки страниц, исключать определенные страницы из меню, а также включать только определенные страницы в меню. Это очень полезная функция для разработчиков WordPress, позволяющая создавать гибкие и настраиваемые меню для сайтов на этой платформе.

Связанные элементы

  • Функция wp_nav_menu(): Выводит пользовательский меню.
  • Функция wp_list_pages(): Выводит список страниц.
  • Функция wp_get_nav_menu_items(): Возвращает элементы пользовательского меню.
  • Хук wp_nav_menu_args: Позволяет изменять аргументы функции wp_nav_menu.
  • Хук wp_page_menu_args: Позволяет изменять аргументы функции wp_page_menu.
  • Хук wp_nav_menu_items: Позволяет изменять элементы пользовательского меню.
  • Хук wp_nav_menu: Вызывается после вывода пользовательского меню.
  • Хук wp_list_pages: Вызывается после вывода списка страниц.
  • Класс Walker_Nav_Menu: Класс-родитель для создания пользовательского вывода меню.
  • Класс Walker_Page: Класс-родитель для создания пользовательского вывода списка страниц.
Обсуждение