Функция get_children()
в WordPress используется для получения дочерних элементов (постов) определенного родительского поста. Она полезна для организации и отображения иерархически структурированных данных, таких как страницы, вложения и настраиваемые типы записей.
Описание функции
get_children()
возвращает массив объектов WP_Post, соответствующих дочерним элементам указанного поста. Вы можете фильтровать и упорядочивать результаты с помощью различных аргументов.
Синтаксис
get_children( $args = '', $output = OBJECT )
Параметры
$args
(array|string): Массив или строка аргументов для запроса. Доступные аргументы включают:post_parent
(int): ID родительского поста.post_type
(string|array): Тип поста или массив типов постов.post_status
(string|array): Статус поста или массив статусов постов.numberposts
(int): Количество постов для возврата.orderby
(string): Поле для сортировки.order
(string): Порядок сортировки (ASC или DESC).
$output
(string): Тип возвращаемого значения. Допустимые значения: OBJECT, ARRAY_A, ARRAY_N. По умолчанию: OBJECT.
Примеры использования
Пример 1. Получение всех дочерних страниц для определенной страницы
В этом примере мы получим все дочерние страницы для страницы с ID 42.
$args = array(
'post_parent' => 42,
'post_type' => 'page',
'post_status' => 'publish',
'orderby' => 'menu_order',
'order' => 'ASC'
);
$children = get_children( $args );
if ( !empty( $children ) ) {
foreach ( $children as $child ) {
echo '<h2>' . get_the_title( $child ) . '</h2>';
echo '<p>' . get_the_excerpt( $child ) . '</p>';
}
} else {
echo 'Нет дочерних страниц.';
}
Пример 2. Получение вложений для конкретного поста
Этот пример показывает, как получить все вложения (например, изображения) для поста с ID 123.
$args = array(
'post_parent' => 123,
'post_type' => 'attachment',
'post_status' => 'inherit',
'orderby' => 'date',
'order' => 'DESC'
);
$attachments = get_children( $args );
if ( !empty( $attachments ) ) {
foreach ( $attachments as $attachment ) {
echo wp_get_attachment_image( $attachment->ID, 'thumbnail' );
}
} else {
echo 'Нет вложений.';
}
Пример 3. Получение дочерних элементов настраиваемого типа поста
Допустим, у вас есть настраиваемый тип поста project
и вы хотите получить все дочерние элементы для проекта с ID 10.
$args = array(
'post_parent' => 10,
'post_type' => 'project',
'post_status' => 'publish',
'orderby' => 'title',
'order' => 'ASC'
);
$projects = get_children( $args );
if ( !empty( $projects ) ) {
foreach ( $projects as $project ) {
echo '<h3>' . get_the_title( $project ) . '</h3>';
echo '<div>' . get_the_content( $project ) . '</div>';
}
} else {
echo 'Нет дочерних проектов.';
}
Заключение
Функция get_children()
предоставляет гибкий способ получения дочерних постов в WordPress. Используя различные аргументы, вы можете настраивать запросы для получения нужных данных, будь то страницы, вложения или настраиваемые типы постов. Это делает get_children()
мощным инструментом для разработки тем и плагинов.