wp_list_pages() — выводит список страниц

Выводит список страниц WordPress в виде ссылок на них. Часто используется в темах в шапке и в сайдбаре.

wp_list_pages($args = '')
$args
(массив) Список значений параметра $args по умолчанию:

$args = array(
	'authors'      => '', // все авторы
	'child_of'     => 0, // и родительские и дочерние страницы
	'date_format'  => get_option('date_format'),
	'depth'        => 0, // любой уровень вложенности
	'echo'         => 1, // вывести результат
	'exclude'      => '', // ничего не исключать
	'include'      => '', // не выводить какие-либо конкретные страницы
	'link_after'   => '', // ничего не добавлять перед ссылкой
	'link_before'  => '', // ничего не добавлять после ссылки
	'post_type'    => 'page', // тип поста - только страницы
	'post_status'  => 'publish', // статус - только опубликованные
	'show_date'    => '', // не указывать дату
	'sort_column'  => 'menu_order, post_title', // сорировать по порядку, а затем по заголовку
        'sort_order'   => '', // порядок сортировки - по возрастанию
	'title_li'     => __('Pages'), // заголовок списка - Страницы
);
authors
(строка) Укажите через запятую ID авторов, страницы, опубликованные которыми, нужно вывести.

<ul>
	<?php wp_list_pages( 'authors=1,15' ) ?>
</ul>
child_of
(целое число) Выводит дочерние страницы, находящихся на всех уровнях вложенности, для страницы с указанным ID.

<ul>
	<?php wp_list_pages( 'child_of=15' ) ?>
</ul>
show_date
(строка) Нужно ли отобразить дату публикации или изменения страницы:

  • modified — выводить дату изменения,
  • created (либо любое другое значение, отличное от пустой строки) — отображать дату публикации;
date_format
(строка) Формат даты (зависит от предыдущего параметра). Пример:

<ul>
	<?php 
		$args = array(
			'show_date' => 'modified',
			'date_format' => 'j M Y'
		);
		wp_list_pages( $args );
	?>
</ul>
sort_column
(строка) По какому параметру сортировать выводимые ссылки на страницы:

  • post_title — по заголовку страниц,
  • menu_order — по порядку (устанавливается в админке при редактировании страниц),
  • post_date — по дате создания,
  • post_modified — по дате последнего изменения,
  • ID — по ID,
  • post_author — по ID автора,
  • post_name — по ярлыку страниц;
sort_order
(строка) Порядок сортировки:

  • ASC — по возврастанию (по умолчанию),
  • DESC — по убыванию;

Сортируем по заголовку в обратном алфавитном порядке:

<ul>
	<?php wp_list_pages( 'sort_column=post_title&sort_order=DESC' ) ?>
</ul>
exclude
(строка) Укажите через запятую ID страниц, которые нужно исключить из списка.
exclude_tree
(строка) Укажите через запятую ID родительских страниц, которые нужно исключить из списка вместе с их дочерними страницами.
include
(строка) Если вам нужно включить только какие-то конкретные страницы в выводимый список, укажите их IDы через запятую, используя этот параметр.
depth
(целое число) Параметр позволяет задать максимальный уровень вложенности выводимых страниц:

  • 0 — любой уровень вложенности, страницы выводятся с учетом иерархии,
  • -1 — любой уровень вложенности, но без учета иерархии,
  • 1 — только страницы с нулевым уровнем вложенности,
  • 2, 3, … — укажите максимальный уровень вложенности страниц.
title_li
(строка) Заголовок списка. Если указать null или пустое значение, заголовок не будет добавлен, а список не будет заключен в тег <ul>.

Например в этих случаях заголовка не будет:

<ul>
	<?php wp_list_pages('title_li='); ?>
</ul>
<ul>
	<?php wp_list_pages('exclude=1,3,7&title_li='); ?>
</ul>
echo
(логическое) Что в итоге нужно сделать с полученным результатом:

  • 1 (true) — вывести,
  • 0 (false) — возвратить.
<?php
$children53 = wp_list_pages('title_li=&child_of=53&echo=0');
if ($children53) { ?>
<ul>
	<?php echo $children53; ?>
</ul>
<?php } ?>
meta_key
(строка) Название произвольного поля (используется в совокупности с параметром meta_value).
meta_value
(строка) Значение произвольного поля (используется в совокупности с параметром meta_key).

<ul>
	<?php wp_list_pages( 'meta_key=color&meta_value=white' ) ?>
</ul>
link_before
(строка) Текст или код HTML, который нужно добавить перед анкором ссылки внутри тега <a>.
link_after
(строка) Текст или код HTML, который нужно добавить после анкора ссылки внутри тега <a>.
number
(целое число) Количество ссылок на страниц, которое нужно вывести (по умолчанию — все).
offset
(целое число) Количество страниц с начала списка, которые нужно пропустить.
post_type
(строка) Вы можете выводить не только страницы, но и другие типы постов с иерархией.

Например выведем работы из портфолио:

$args = array(
	'post_type'=> 'portfolio',
	'title_li'=> 'Портфолио'
);
wp_list_pages( $args );
post_status
(строка) Страницы с какими статусами следует включить в список. Например, опубликованные или черновики. Список всех статусов здесь. Можно указать несколько статусов через запятую.

Список изменений:

  • 2.7 : Добавлены параметры link_before, link_after и exclude_tree.
  • 2.8 : Добавлены параметры number и offset.
Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.