get_children

函数
get_children ( $args = '', $output = OBJECT )
参数
  • (mixed) $args Optional. User defined arguments for replacing the defaults. Default empty.
    Required:
    Default: (empty)
  • (string) $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to a WP_Post object, an associative array, or a numeric array, respectively. Default OBJECT.
    Required:
    Default: OBJECT
返回值
  • (WP_Post[]|array[]|int[]) Array of post objects, arrays, or IDs, depending on `$output`.
相关
  • get_posts()
定义位置
相关方法
get_term_childrenget_page_children_get_term_children_relocate_childrenget_category_children
引入
2.0.0
弃用
-

get_children: 这个函数用来检索一个文章或页面的孩子。它需要两个参数:$post_id(必填)和$args(可选)。$post_id参数是你想检索的文章或页面的ID。参数$args是一个参数数组,可用于修改查询。

检索文章父级ID的所有子代。

通常,在没有任何增强的情况下,子句将适用于页面。在WordPress的内部工作环境中,页面、文章和附件共享同一个表,因此,这个功能可以适用于其中的任何一个。然后指出,虽然这个功能对文章不起作用,但并不意味着它对文章不起作用。建议你知道你希望检索的是什么上下文的子代。

附件也可以作为文章的子项,所以如果这是一个准确的说法(需要验证),那么就有可能获得一个文章的所有附件。自2.5版本以来,附件已经发生了变化,所以这很可能是不准确的,但一般来说可以作为一个例子来说明什么是可能的。

作为默认值列出的参数是这个函数的参数,也是get_posts()函数的参数。这些参数与get_children的默认值相结合,然后传递给get_posts()函数,该函数接受额外的参数。你可以替换这个函数中的默认值,列在下面,以及get_posts()函数中列出的额外参数。

post_parent”是最重要的参数,需要对$args参数给予重要关注。如果你传递一个对象或一个整数(数字),那么只抓取’post_parent’,其他的都会丢失。如果你没有指定任何参数,那么就会认为你是在The Loop中,并且将从当前文章中抓取post parent。

post_parent”参数是用来获取子代的ID。numberposts’是要检索的文章数量,默认为’-1’,用于获取所有的文章。给出一个高于0的数字将只检索该数量的文章。

post_type’和’post_status’参数可以用来选择要检索的文章的标准。post_type”可以是任何东西,但WordPress的文章类型是”post”、”pages”和”attachments”。post_status’参数将接受编写管理面板中的任何文章状态。

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;
	}
}

常见问题

FAQs
查看更多 >