Вывод списка дочерних страниц в WordPress

Возникла необходимость решить интересную задачу, но готового решения не нашёл.

Дано: страницы в WordPress с несколькими уровнями вложенности.
Вывод списка дочерних страниц в WordPress

Нужно: при заходе на главную страницу «Заборы» вывести список определённых дочерних страниц с первым уровнем вложенности, включая скрытые страницы.

Для исключения определённых страниц из меню я использовал плагин Exclude Pages.

Изначально меню выглядело вот так:
Вывод списка дочерних страниц в WordPress

Вот эти четыре нижних пункта в меню нам понадобятся для вывода их на странице «Заборы», которая является родительской. Их мы и скрываем плагином.

Для решения этой задачи я написал небольшой код, создающий новый шорткод [pages], который необходимо подключить в файл functions.php вашей темы.

Скачать его можно по этой ссылке: https://bitbucket.org/gruz0/wordpress/src/.
Находите файл shortcode-pages.php, копируете всё и добавляйте в functions.php.

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

Выбирайте любой из предложенных ниже примеров, вставляйте в текст вашей страницы и тестируйте. Имейте в виду, что все перечисленные параметры можно использовать как по отдельности, так и вместе.


Пример 1: Выводим указанные страницы по ID.

В параметр include передаются ID тех страниц, которые нам нужно отобразить.

[pages include="1272,1274,1276,1280"]

Если параметр не указан, то выводятся все страницы, являющиеся дочерними к активной.

Результат:
Вывод списка дочерних страниц в WordPress


Пример 2: Тоже самое, но с присвоенным стилем CSS для контейнера

Параметр css_class задаёт стиль CSS, который будет подключен к тегу UL для вывода маркированного списка. По-умолчанию используется класс subpages, можете задавать стили списку и через него, в том числе.

[pages include="1274,1276,1268,1278,1280,1266" css_class="red"]

Результат:
Вывод списка дочерних страниц в WordPress

Классу red я заранее задал такой стиль, в вашем случае всё будет иначе :-)


Пример 3: Вывод дочерних записей другой страницы.

Параметр parent позволяет выводить на одной странице список другой страницы с дочерними пунктами. В нём нужно указать ID нужной нам страницы.

[pages parent=2]

Результат:
Вывод списка дочерних страниц в WordPress


Пример 4: Вывод родительской страницы

Параметр show_parent со значением «1» позволяет выводить первой в этом меню родительскую страницу, указанную в parent. Это может быть удобным в некоторых случаях.

Результат:
Вывод списка дочерних страниц в WordPress

В данном случае на странице «Стоимость» происходит добавление первым пунктом родительской страницы «Гаражные ворота». Плюс в том, что эту конструкцию можно использовать не только на страницах, но и в записях.

Заключение

На этом всё, задачка решена и можно смело использовать код в других проектах :-)