get_children()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
get_children( mixed $args = '', string $output = OBJECT ): WP_Post[]|array[]|int[]
Описание
Обычно, без каких-либо доработок, дочерние элементы относятся к страницам. С точки зрения внутреннего устройства WordPress страницы, записи и вложения используют одну и ту же таблицу, поэтому эта функциональность может применяться к любому из них. При этом отмечается, что хотя эта функция не работает с записями, это не означает, что она не будет работать с записями. Рекомендуется чётко понимать, дочерние элементы какого контекста вы хотите получить.
Вложения также могут быть сделаны дочерними по отношению к записи, поэтому, если это утверждение верно (что требует проверки), можно будет получить все вложения записи. Вложения с тех пор изменились начиная с версии 2.5, так что это, скорее всего, неточно, но в целом служит примером того, что возможно.
Аргументы, перечисленные как значения по умолчанию, относятся к этой функции, а также к функции get_posts(). Аргументы объединяются со значениями по умолчанию get_children и затем передаются в функцию get_posts(), которая принимает дополнительные аргументы.
Вы можете заменить значения по умолчанию этой функции, перечисленные ниже, а также дополнительные аргументы, перечисленные в функции get_posts().
‘post_parent’ — самый важный аргумент, и особое внимание нужно уделить параметру $args. Если вы передаёте объект или целое число, то берётся только ‘post_parent’, а всё остальное теряется. Если вы не указываете никаких аргументов, то предполагается, что вы находитесь в Цикле, и родительская запись будет взята из текущей записи.
Аргумент ‘post_parent’ — это ID, для которого нужно получить дочерние элементы. ‘numberposts’ — количество получаемых записей, значение по умолчанию ‘-1’, которое используется для получения всех записей. Число больше 0 позволит получить только указанное количество записей.
Аргументы ‘post_type’ и ‘post_status’ можно использовать для выбора критериев получаемых записей. ‘post_type’ может быть любым, но типами записей WordPress являются ‘post’, ‘pages’ и ‘attachments’. Аргумент ‘post_status’ принимает любой статус записи из панелей администрирования публикации.
См. alsoget_posts()
Оригинал (английский)
Normally, without any enhancements, the children would apply to pages. In the context of the inner workings of WordPress, pages, posts, and attachments share the same table, so therefore the functionality could apply to any one of them. It is then noted that while this function does not work on posts, it does not mean that it won’t work on posts. It is recommended that you know what context you wish to retrieve the children of.
Attachments may also be made the child of a post, so if that is an accurate statement (which needs to be verified), it would then be possible to get all of the attachments for a post. Attachments have since changed since version 2.5, so this is most likely inaccurate, but serves generally as an example of what is possible.
The arguments listed as defaults are for this function and also of the get_posts() function. The arguments are combined with the get_children defaults and are then passed to the get_posts() function, which accepts additional arguments.
You can replace the defaults in this function, listed below and the additional arguments listed in the get_posts() function.
The ‘post_parent’ is the most important argument and important attention needs to be paid to the $args parameter. If you pass either an object or an integer (number), then just the ‘post_parent’ is grabbed and everything else is lost. If you don’t specify any arguments, then it is assumed that you are in The Loop and the post parent will be grabbed for from the current post.
The ‘post_parent’ argument is the ID to get the children. The ‘numberposts’ is the amount of posts to retrieve that has a default of ‘-1’, which is used to get all of the posts. Giving a number higher than 0 will only retrieve that amount of posts.
The ‘post_type’ and ‘post_status’ arguments can be used to choose what criteria of posts to retrieve. The ‘post_type’ can be anything, but WordPress post types are ‘post’, ‘pages’, and ‘attachments’. The ‘post_status’ argument will accept any post status within the write administration panels.
Параметры
$args
mixed
необязательный
= ''
$output
string
необязательный
= OBJECT
Возвращаемое значение
WP_Post[]|array[]|int[]
Исходный код
wp-includes/post.php:990
function get_children( $args = '', $output = OBJECT ) {
$kids = array();
if ( empty( $args ) ) {
if ( isset( $GLOBALS['post'] ) ) {
$args = array( 'post_parent' => (int) $GLOBALS['post']->post_parent );
} else {
return $kids;
}
} elseif ( is_object( $args ) ) {
$args = array( 'post_parent' => (int) $args->post_parent );
} elseif ( is_numeric( $args ) ) {
$args = array( 'post_parent' => (int) $args );
}
$defaults = array(
'numberposts' => -1,
'post_type' => 'any',
'post_status' => 'any',
'post_parent' => 0,
);
$parsed_args = wp_parse_args( $args, $defaults );
$children = get_posts( $parsed_args );
if ( ! $children ) {
return $kids;
}
if ( ! empty( $parsed_args['fields'] ) ) {
return $children;
}
update_post_cache( $children );
foreach ( $children as $key => $child ) {
$kids[ $child->ID ] = $children[ $key ];
}
if ( OBJECT === $output ) {
return $kids;
} elseif ( ARRAY_A === $output ) {
$weeuns = array();
foreach ( (array) $kids as $kid ) {
$weeuns[ $kid->ID ] = get_object_vars( $kids[ $kid->ID ] );
}
return $weeuns;
} elseif ( ARRAY_N === $output ) {
$babes = array();
foreach ( (array) $kids as $kid ) {
$babes[ $kid->ID ] = array_values( get_object_vars( $kids[ $kid->ID ] ) );
}
return $babes;
} else {
return $kids;
}
}
История изменений
| Версия | Описание |
|---|---|
| 2.0.0 | Introduced. |

