Как вывести список дочерних страниц WordPress для их родительской

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

Посмотреть на пример списка дочерних страниц можно на скриншоте ниже, который был сделан со страницы сайта OptinMonster.

childpagesexample1[1]

Важной особенностью страниц является то, что они могут быть иерархическими. Это означает, что страниц может быть родительской и иметь свои дочерние страницы (например, подстраницы), что позволит вам группировать различные страницы «под» одной родительской. Например, если у вас есть Страница Товара на сайте, то вы можете добавить страницы типа Функции, Цены, Поддержка в качестве дочерних. Каждая дочерняя страница, в свою очередь, также может иметь свои вложенные страницы.

Для того, чтобы создать дочернюю страницу просто создайте новую или перейдите в редактирование существующей. В мета блоке Свойства страницы выберите родительскую страницу из выпадающего меню.

creatingchildpage[1]

Примечание: если вы не видите этого меню, тогда нажмите на кнопку Настройки экрана в правом верхнем углу страницы. Появится меню, где нужно будет отметить галочкой пункт Свойства страницы.

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

Для того, чтобы отобразить список дочерних страниц под родительской, вам понадобится добавить следующий код в файл functions.php темы:

function devise_list_child_pages() {

global $post;

if ( is_page() && $post->post_parent )

	$childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->post_parent . '&echo=0' );
else
	$childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->ID . '&echo=0' );

if ( $childpages ) {

	$string = '<ul>' . $childpages . '</ul>';
}

return $string;

}

add_shortcode('devise_childpages', 'devise_list_child_pages');

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

Для того, чтобы показать дочерние страницы, просто вставьте вот такой шорткод на страницу или в текстовый виджет сайдбара:

[devise_childpages]

Динамически отображает дочерние страницы без всяких шорткодов

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

Лучшим решением в этой ситуации будет редактирование файлов шаблонов страниц в своей теме, чтобы можно было отображать дочерние страницы автоматически. Для этого вам понадобиться отредактировать основной файл page.php шаблона или же создать произвольный шаблон страницы в теме.

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

<?php devise_list_child_pages(); ?>

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

Мы надеемся, что эта статья помогла вам вывести дочерние страницы в WordPress.

VN:F [1.9.22_1171]
Rating: 3.4/5 (10 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top