WordPress 参考函数:get_children

描述

get_children() 返回附件(attachments)、历史版本(revisions)或者根据父页面获取子页面。类似与 get_posts()。

概要

array $children =& get_children( mixed $args = "", constant $output = OBJECT);

返回值

返回一个文章关联数组(参数 $output 决定输出的变量类型),以文章ID作为数组的Key。如果没有发现任何文章,返回空数组。

在版本2.9之前,如果没有发现任何文章则返回 false。

默认参数(版本2.7)

$defaults = array( 
    'post_parent' => 0,
    'post_type'   => 'any', 
    'numberposts' => -1,
    'post_status' => 'any'
);

 参数

全部参数参考 get_posts()。

版本2.6以后,你必须通过一个非空的文章类型(post_type)参数(或附件(attachment)或页面(page))。

$args (混合型)通过一个数组设置多个参数。通过一个整形的文章ID或者一个文章对象可以获得该文章的子文章。如果是一个空的值,则可以获得当前文章或者页面的子文章或页面。

$args[‘numberposts’] (整形)获取子文章或页面的数量。可选的,默认 -1(无限制)

$args[‘post_parent’] (整形)通过文章或页面的ID获取他们的子文章或页面。Pass 0 to get attachments without parent. Pass null to get any child regardless of parent. Optional; default: 0 (no parent)

$args[‘post_type’](字符串)posts 表中 post_type 字段里的任何值(任何文章类型),如 attachmentpage, 或 revision; 或者 any. 默认: any

$args[‘post_status’](string) Any value from the post_status column of the wp_posts table, such as publishdraft, or inherit; or the keyword any. Default: any

$args[‘post_mime_type’](string) A full or partial mime-type, e.g. imagevideovideo/mp4, which is matched against a post’s post_mime_typefield

$output(常数) Variable type of the array items returned by the function: one of OBJECTARRAY_AARRAY_N. Optional; default: OBJECT

示例

如果你只想获取或者现实 附件(attachments),使用 get_posts() 会容易一点。

$images =& get_children( 'post_type=attachment&post_mime_type=image' );

$videos =& get_children( 'post_type=attachment&post_mime_type=video/mp4' );

if ( empty($images) ) {
	// no attachments here
} else {
	foreach ( $images as $attachment_id => $attachment ) {
		echo wp_get_attachment_image( $attachment_id, 'full' );
	}
}

//  If you don't need to handle an empty result:

foreach ( (array) $videos as $attachment_id => $attachment ) {
	echo wp_get_attachment_link( $attachment_id );
}

显示相关文章的第一个图像

这个函数返回一篇文章相关联的第一张图片。

function echo_first_image( $postID ) {
	$args = array(
		'numberposts' => 1,
		'order' => 'ASC',
		'post_mime_type' => 'image',
		'post_parent' => $postID,
		'post_status' => null,
		'post_type' => 'attachment',
	);

	$attachments = get_children( $args );

	if ( $attachments ) {
		foreach ( $attachments as $attachment ) {
			$image_attributes = wp_get_attachment_image_src( $attachment->ID, 'thumbnail' )  ? wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ) : wp_get_attachment_image_src( $attachment->ID, 'full' );

			echo '<img src="' . wp_get_attachment_thumb_url( $attachment->ID ) . '" class="current">';
		}
	}
}

显示一篇文章关联的第一张图片和重置数组的key为数值键

在上面的例子里,最初返回的是一个用图片ID标记为Key的数组(the exact thing which is being sought – since we don’t know it how are we supposed to access it?). 下面的代码为操作图片信息给出了一个更容易的方法:数组 $child_image. 应该在循环中使用.

$args = array(
	'numberposts' => 1,
	'order'=> 'DESC',
	'post_mime_type' => 'image',
	'post_parent' => $post->ID,
	'post_type' => 'attachment'
	);

$get_children_array = get_children($args,ARRAY_A);  //returns Array ( [$image_ID]... 
$rekeyed_array = array_values($get_children_array);
$child_image = $rekeyed_array[0];  

print_r($child_image);  	//Show the contents of the $child_image array.
echo $child_image['ID'];   	//Show the $child_image ID.

变更记录

版本2.0.0起

源码位置

get_children()在 wp-includes/post.php.

相关函数

get_children() calls get_posts(), which calls $WP_Query->get_posts().

wp_get_attachment_link()get_page_children()