wp_list_pages

Позволяет изменить HTML-вывод страниц для списка
Хук WordPress
INT 1.5.1
WordPress Icon

Описание хука

Хук wp_list_pages позволяет изменить HTML-вывод списка страниц.

Функция wp_list_pages() используется для вывода списка страниц в WordPress. Хук wp_list_pages вызывается внутри этой функции и позволяет определить, как будет отображаться список страниц на сайте.

Использование хука wp_list_pages позволяет изменить или расширить вывод списка страниц, добавить дополнительные классы или атрибуты, или внести другие изменения в HTML-код списка страниц.

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

apply_filters( 'wp_list_pages', string $output, array $parsed_args, WP_Post[] $pages )

Хук wp_list_pages принимает три аргумента:

  • $output (строка) — HTML-вывод списка страниц.
  • $parsed_args (массив) — Массив аргументов для вывода списка страниц. См. функцию wp_list_pages() для информации о принимаемых аргументах.
  • $pages (массив объектов WP_Post) — Массив объектов страниц, которые будут отображаться в списке.

Хук wp_list_pages позволяет изменить $output, $parsed_args и $pages перед их выводом на страницу.

  • $output (строка) — HTML-вывод списка страниц.
  • $parsed_args (массив) — Массив аргументов для вывода списка страниц. См. функцию wp_list_pages() для информации о принимаемых аргументах.
  • $pages (массив объектов WP_Post) — Массив объектов страниц, которые будут отображаться в списке.
<?php
/**
 * Фильтруем HTML-вывод списка страниц.
 *
 * @param string     $output     HTML-вывод списка страниц.
 * @param array      $parsed_args Массив аргументов для вывода списка страниц.
 * @param WP_Post[]  $pages      Массив объектов страниц, которые будут отображаться в списке.
 * @return string    Измененный HTML-вывод списка страниц.
 */
function custom_wp_list_pages( $output, $parsed_args, $pages ) {
    // Ваш код здесь
    // Изменяем $output, $parsed_args или $pages по вашему усмотрению
    // и возвращаем измененный HTML-вывод списка страниц
    return $output;
}
add_filter( 'wp_list_pages', 'custom_wp_list_pages', 10, 3 );
?>

В приведенном выше примере кода мы создаем функцию custom_wp_list_pages(), которая принимает три аргумента: $output, $parsed_args и $pages. Внутри функции вы можете изменить или расширить $output, $parsed_args или $pages в соответствии с вашими потребностями. Затем мы добавляем эту функцию как фильтр с помощью add_filter() и указываем приоритет 10 и количество аргументов 3.

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

Изменение HTML-вывода списка страниц


function custom_wp_list_pages($output, $parsed_args, $pages) {
    // Ваш код для изменения HTML-вывода списка страниц
    return $output;
}
add_filter('wp_list_pages', 'custom_wp_list_pages', 10, 3);

В этом примере мы создаем функцию custom_wp_list_pages, которая принимает три аргумента: $output (HTML-вывод списка страниц), $parsed_args (массив аргументов для вывода списка страниц) и $pages (массив объектов страниц). Внутри функции вы можете изменить HTML-вывод списка страниц по своему усмотрению. Например, вы можете добавить дополнительные классы или стили к элементам списка или изменить их порядок. В конце функции необходимо вернуть измененный HTML-вывод.

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


function custom_wp_list_pages($output, $parsed_args, $pages) {
    $parsed_args['sort_column'] = 'post_modified';
    $parsed_args['sort_order'] = 'DESC';
    $output = wp_list_pages($parsed_args);
    return $output;
}
add_filter('wp_list_pages', 'custom_wp_list_pages', 10, 3);

В этом примере мы используем функцию wp_list_pages с аргументами $parsed_args, чтобы получить список страниц, отсортированных по дате изменения в порядке убывания. Затем мы возвращаем измененный HTML-вывод списка страниц.

Вывод только определенного типа страниц


function custom_wp_list_pages($output, $parsed_args, $pages) {
    $parsed_args['post_type'] = 'product';
    $output = wp_list_pages($parsed_args);
    return $output;
}
add_filter('wp_list_pages', 'custom_wp_list_pages', 10, 3);

В этом примере мы используем функцию wp_list_pages с аргументом $parsed_args['post_type'], чтобы получить список страниц только определенного типа (например, «product»). Затем мы возвращаем измененный HTML-вывод списка страниц.

Исключение определенных страниц из списка


function custom_wp_list_pages($output, $parsed_args, $pages) {
    $parsed_args['exclude'] = array(1, 2, 3);
    $output = wp_list_pages($parsed_args);
    return $output;
}
add_filter('wp_list_pages', 'custom_wp_list_pages', 10, 3);

В этом примере мы используем функцию wp_list_pages с аргументом $parsed_args['exclude'], чтобы исключить определенные страницы из списка. В данном случае мы исключаем страницы с ID 1, 2 и 3. Затем мы возвращаем измененный HTML-вывод списка страниц.

Ограничение количества выводимых страниц


function custom_wp_list_pages($output, $parsed_args, $pages) {
    $parsed_args['number'] = 5;
    $output = wp_list_pages($parsed_args);
    return $output;
}
add_filter('wp_list_pages', 'custom_wp_list_pages', 10, 3);

В этом примере мы используем функцию wp_list_pages с аргументом $parsed_args['number'], чтобы ограничить количество выводимых страниц до 5. Затем мы возвращаем измененный HTML-вывод списка страниц.

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

Как изменить HTML-разметку списка страниц?

Хук wp_list_pages позволяет изменить HTML-разметку списка страниц. Для этого нужно использовать функцию apply_filters() и передать ей параметры $output, $parsed_args и $pages. Параметр $output содержит HTML-разметку списка страниц.

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

function custom_wp_list_pages( $output, $parsed_args, $pages ) {
    // Ваш код для изменения HTML-разметки списка страниц
    return $output;
}
add_filter( 'wp_list_pages', 'custom_wp_list_pages', 10, 3 );

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

Для добавления классов к элементам списка страниц можно использовать параметр $parsed_args функции wp_list_pages(). В этом параметре можно указать значение для аргумента 'link_before', которое будет добавлено перед ссылкой на страницу. Это позволит добавить классы к ссылкам.

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

$args = array(
    'link_before' => '<span class="custom-class">',
    'link_after' => '</span>'
);
wp_list_pages( $args );

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

Для изменения порядка сортировки страниц можно использовать параметры $parsed_args и $pages функции wp_list_pages(). В параметре $parsed_args можно указать значение для аргумента 'sort_order', которое определит порядок сортировки (ASC — по возрастанию, DESC — по убыванию). В параметре $parsed_args также можно указать значение для аргумента 'sort_column', которое определит, по какому столбцу сортировать страницы.

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

$args = array(
    'sort_order' => 'DESC',
    'sort_column' => 'post_title'
);
wp_list_pages( $args );

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

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


$args = array(
    'exclude' => array(1, 2, 3) // исключить страницы с ID 1, 2 и 3
);
wp_list_pages($args);

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

Чтобы включить только определенные страницы в список, вы можете использовать параметр include при вызове функции wp_list_pages(). Этот параметр принимает массив идентификаторов страниц, которые необходимо включить.


$args = array(
    'include' => array(4, 5, 6) // включить только страницы с ID 4, 5 и 6
);
wp_list_pages($args);

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

Чтобы отобразить только дочерние страницы определенной страницы, вы можете использовать параметр child_of при вызове функции wp_list_pages(). Этот параметр принимает ID родительской страницы.


$args = array(
    'child_of' => 7 // отобразить только дочерние страницы страницы с ID 7
);
wp_list_pages($args);

Как изменить количество отображаемых страниц?

Чтобы изменить количество отображаемых страниц при использовании функции wp_list_pages(), нужно использовать аргумент number. По умолчанию значение этого аргумента равно 0, что означает отображение всех страниц. Чтобы изменить это значение, нужно указать желаемое количество страниц.


$args = array(
    'number' => 5, // Отобразить только 5 страниц
);
wp_list_pages( $args );

Как пропустить определенное количество страниц перед отображением?

Если нужно пропустить определенное количество страниц перед их отображением, можно использовать аргумент offset. По умолчанию значение этого аргумента равно 0, что означает отсутствие пропуска страниц. Чтобы пропустить определенное количество страниц, нужно указать желаемое значение аргумента.


$args = array(
    'offset' => 2, // Пропустить первые 2 страницы
);
wp_list_pages( $args );

Как изменить тип поста, который запрашивается?

По умолчанию функция wp_list_pages() запрашивает страницы типа «page». Если нужно изменить тип запрашиваемого поста, можно использовать аргумент post_type. Чтобы изменить тип поста, нужно указать желаемое значение аргумента.


$args = array(
    'post_type' => 'post', // Запрашивать посты вместо страниц
);
wp_list_pages( $args );

Хук wp_list_pages позволяет изменять HTML-вывод списка страниц. С помощью аргументов функции wp_list_pages() можно настроить количество отображаемых страниц, пропустить определенное количество страниц и изменить тип запрашиваемого поста. Этот хук является мощным инструментом для настройки вывода списка страниц в WordPress.

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

  • Функция wp_list_pages(): Выводит список страниц в виде HTML.
  • Функция get_pages(): Возвращает массив объектов страниц.
  • Хук page_css_class: Фильтрует классы CSS для элементов списка страниц.
  • Хук wp_page_menu_args: Фильтрует аргументы для функции wp_page_menu.
  • Хук wp_page_menu: Фильтрует HTML-код меню страниц.
  • Хук wp_list_pages_excludes: Фильтрует исключаемые страницы из списка.
  • Класс Walker_Page: Определяет, как выводить список страниц.
Обсуждение