Дочерние страницы wordpress – get_page_children() — Получает дочерние страницы к указанной из списка переданных страниц. Получает все уровни вложенности. Функция WordPress.

Содержание

Что такое дочерние страницы и как их создавать в WordPress?

Главная » Уроки » Что такое дочерние страницы и как их создавать в WordPress?

Если вы начинающий пользователь движка и понятия не имеете, что такое «Родительские» и «Дочерние» страницы, и для чего они вообще нужны, а только слышали о них и хотелось бы подробно узнать разницу. То как раз эта заметка созданная для вас, чтобы подробно разъяснить этот момент начинающим пользователям движка WordPress.

Какие есть возможности вывода информации на WordPress сайтах?

Сперва нужно понимать, что Страницы и Заметки — это два типа контента по умолчанию в системе WordPress.

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

Страницы же представляют собой одноразовый или автономный контент, который не является частью динамичного блога. Например, страница «О нас» или страница «Контакты» остается долгое время на одном месте сайта и на них очень редко обновляется контент. Их вы не сможете сортировать, как заметки, но они могут быть иерархическими. А это означает, что вы можете организовать их с помощью Родительских и Дочерних страниц.

Как правило, коммерческие или бизнес-сайты используют только Cтраницы для создания структуры своего веб-сайта. Таким образом, они могут создать свой сайт без использования страницы блога (без вывода заметок). Поэтому, умение использовать иерархические структуры страниц — очень важно для разработчиков сайтов на WordPress.

Что такое Родительская и Дочерняя страница в WordPress?

Родительская — это более обширная по значению страница, которая может в себя включать более узконаправленные (Дочерние). Например, Родительская страница под названием «О нас» может содержать в себе «Наша команда», «История», «Контакты» и много других подстраниц в этом направлении.

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

Думаем, с теорией достаточно, можно уже переходить к практике.

Как создать дочернюю страницу в WordPress?

Чтобы создать Дочернюю страницу, вам понадобится сначала иметь готовою Родительскую страницу. Если у вас уже есть такая, которую вы хотели бы использовать в качестве Родителя — отлично, если нет — создайте её. Для этого просто перейдите в админке сайта в раздел «Страницы» –> «Добавить новую» и просто создайте страницу с названием Родителя.

После этого ещё раз перейдите на создание новой страницы, но, на этот раз, обратите внимание в правую часть экрана, где находятся её настройки. Найдите там блок с названием «Атрибуты страницы» и вы увидите, что в нем есть возможность выбора Родителя для нее.

Выбор родителя для страницы

По умолчанию выбор стоит в положении «нет родительской», что означает, что эта страница является отдельной страницей без привязки. Но в этом раскрывающемся списке вы увидите список всех страниц вашего сайта, где вам нужно выбрать ту, которую вы хотите использовать в качестве Родителя для этой дочерней страницы. После выбора просто публикуете страницу и все, готово!

Чтобы просмотреть все Дочерние страницы, вам нужно перейти на вкладку «Страницы» –> «Все страницы» в области администрирования WordPress. И тут вы увидите все Дочерние страницы, под их Родительской страницей, с дополнительным визуальным символом «тире».

Как выглядят дочерние страницы

Теперь, если страница после создания не добавляется автоматически в меню вашего сайта, вам нужно добавить её вручную. Переходим на вкладку «Внешний вид» –> «Меню», выбираем её из списка страниц, нажимаем «Добавить» и простым перетаскиванием ставим её в нужное вам место на меню.

Добавление подстраницы в меню сайта

Полезно будет знать, что не обязательно Дочерние страницы ставить под Родителя. Их можно размещать в меню, как угодно. Но она все равно будет привязана к основной.

Вот и все. Это настолько просто! Мы надеемся, что эта статья помогла вам научиться создавать Дочерние страницы в WordPress и понять, для чего они нужны.

Как создать дочернюю страницу в WordPress

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

Видеоверсия

Что такое дочерняя страница?

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

Записи отображаются в блоге в обратном хронологическом порядке (новые будут первыми). Их можно группировать с помощью рубрик и меток. Типичный пример — «Новости».

Страницы предназначены для отображения информационного содержимого, не являющегося частью блога, например, «О нас» или «Контакты».

Страницы в WordPress могут иметь подстраницы или по другому — дочерние страницы.

Благодаря наличию вложенности, с помощью страниц можно организовать «Каталог услуг» или, например, более расширенный раздел «О компании» с подразделами «Команда» и «История».

Также, группировка с помощью родительских страниц помогает упростить навигацию, когда страниц очень много.

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

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

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

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

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

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

Увидеть структуру дочерних страниц можно в разделе Страницы -> Все страницы. Дочерние страницы перечислены под их родительской страницей с префиксом «—».

Самый простой способ вывести дочерние страницы на сайте — добавить их как подпункты к родительской странице в меню.

Если у вас много дочерних и родительских страниц, вы можете упростить процесс управления ими с помощью плагина Admin Collapse Subpages. Он позволяет сворачивать и разворачивать вложенные страницы.

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

  1.5.0

wp-includes / post-template.php

Выводит список страниц 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.

Миша

В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Страницы WordPress: всё про страницы WordPress

Страница WordPress это

Страницы WordPress они же pages — это стационарная информация, размещенная на сайте, которая не связана ни с датами выхода записей, ни с главной страницей сайта, ни с рубриками сайта.

Структура страниц WordPress

Страницы WordPress не привязываются к рубрикам сайта и  страницам не задаются метки. Однако, страницы, как и рубрики, могут выстраиваться в иерархию, типа Родительская страница→Страница.

URL дочерней страницы будет такой:

http://example.ru/Родительская страница/Страница.

Редактирование страницы

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

Иерархия страниц задается в поле «Атрибуты». В списке страниц, также можно их редактировать: изменять (1), удалять(2), менять свойства(3).

Страницы и меню

Страница может входить в меню, но пунктом меню она не является и не участвует в организации навигации по сайту.

Примером, страницы в меню может служить карта — сайта. Все плагины для создания карт сайта WordPress для посетителя, предполагают создание отдельной страницы с шорткодом карты-сайта.

Чтобы включить страницу в меню откройте вкладку Внешний вид→Меню. Выберете или создайте новое меню и в левой части выберете страницы, которые хотите добавить в меню и добавьте их. После сохранения ссылки на страницы отобразятся на сайте в этом меню.

Как показать страницы на сайте

Чтобы показать страницы на сайте можно воспользоваться виджетом (Внешний вид→Виджеты): Виджет «Страницы». Этот виджет покажет список всех страниц вашего сайта.

Страницы WordPress в коде и файлах шаблона

Шаблон страницы рабочего шаблона это файл page.php. Чтобы его отредактировать нужно, открыть редактор сайта, вкладка Внешний вид→Редактор, и найти там файл  page.php.

Если у вас установлен плагин Jetpack, то можно отдельно редактировать файл CSS шаблона, вкладка Внешний вид→Редактор CSS. Эти изменения не исчезнут при обновлении шаблона.

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

Вывод

Страница это уникальный тип информации на сайте WordPress, которая не «подвластна»  времени и основной структуре сайта.

Игорь Серов специально для сайта «Как сделать сайт WordPress»

Другие статьи раздела: Администрирование WordPress

  • Записи не найдены

Похожие посты:

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

Логичная структура сайта позволяет гибко им управлять, добавляя контент, который в итоге будет легко находимым и видимым для конечного посетителя. Если взять записи, то для их удобной структуризации используют категории (рубрики) и метки (теги). А что делать со страницами? Обычно на сайте их небольшое количество, ведь они используются для статического контента (о сайте, его услугах и пр.) Но иногда бывает, что страниц насчитывается несколько десятков, и они тоже нуждаются в какой-то иерархии и структуризации.

Для чего структурировать страницы?

Для начала давайте посмотрим пример того, чего нам нужно добится.

Главная страница сайта

У нас есть родительская страница с названием Страница 1, у которой есть 3 дочерние (Страница 1.1, Страница 1.2, Страница 1.3). Такая иерархическая связка позволяет более детально структурировать несколько страниц, относящихся к какой-то одной, главной. Например, на сайте интернет-магазина в качестве родительской страницы может выступать, например, Услуги. Дочерними могут выступать Продажа, Доставка, Гарантийное обслуживание, на которых будет детально расписана каждая из предоставляемых магазином услуг.

Как структурировать страницы?

Во-первых, все эти страницы нужно создать. Сделать это можно, перейдя в админ-панели Страницы -> Все страницы.

Раздел Страницы

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

Создание новой страницы

В итоге список всех страниц сайта будет иметь следующий вид:

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

Все, родительская страница создана. Теперь осталось создать дочерние. Создавать их будем поочередно, одна за другой. Для этого сново необходимо нажать кнопку Добавить новую, где также нужно будет указать название и добавить контент. Перед нажатием кнопки Опубликовать следует указать, что для нее родительской является Страница 1. Это можно сделать в блоке Свойства страницы, выбрав ее в поле Родительская.

Создание дочерней страницы

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

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

Визуально можно заметить, что мы получили желаемую иерархию.

Как вывести на сайт структурированные страницы?

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

Создание меню

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

Добавление страниц в меню

Теперь наше меню содержит 4 элемента.

Структура меню

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

Иерархическое меню

Нажав кнопку Сохранить меню, можно смотреть на сайте.

Если Вам понравилась статья — поделитесь с друзьями

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

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

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

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

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

Изначально меню выглядело вот так:

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

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

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

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

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


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

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

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

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

Результат:


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

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

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

Результат:

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


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

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

[pages parent=2]

Результат:


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

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

Результат:

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

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Твитнуть

Поделиться

Поделиться

Отправить

Получаем дочерние пункты элемента меню в WordPress

Мне очень часто приходилось сталкиваться с тем, что возможностей функции wp_nav_menu() не хватало для того, чтобы получить то меню, которое мне было нужно.

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

Преимущество функции в том, что она не делает запросов в базу данных или куда-то ещё, а работает с уже предоставленным ей списком элементов, алгоритм такой:

  1. Предоставляем функции параметр $nav_menu_items — массив объектов элементов меню, который очень удобно получить при помощи wp_get_nav_menu_items().
  2. Указываем в параметрах также ID элемента, дочерние элементы которого нужно получить.
  3. Из предоставленного массива функция отбирает нужные нам элементы и возвращает их также в виде массива объектов.
/**
* Возвращает дочерние элементы пункта меню
*
* @param целое ID родительского элемента
* @param массив Массив объектов элементов меню, по которым будет проходить отбор
* @param логическое Нужно ли учитывать дочерние элементы всех уровней вложенности
* @return массив Массив объектов дочерних элементов
*/
function true_get_nav_menu_children_items( $parent_id, $nav_menu_items, $dpth = true ) {
	$dochernie = array();
	foreach ( (array) $nav_menu_items as $nav_item ) {
		if ( $nav_item->menu_item_parent == $parent_id ) {
			$dochernie[] = $nav_item;
 
			// если вам не нужны дочерние всех уровней вложенности, то даже можете удалить следующие 5 строк кода
			if ( $dpth ) {
				if ( $dch = get_nav_menu_item_children( $nav_item->ID, $nav_menu_items ) )
					$dochernie = array_merge( $dochernie, $dch );
				}
			}
		}
	}
	return $dochernie;
}

Вот по сути и всё — добавляете её в functions.php и потом где хотите используете на сайте.

Миша

В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *