描述
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 字段里的任何值(任何文章类型),如 attachment, page, 或 revision; 或者 any. 默认: any
$args[‘post_status’](string) Any value from the post_status column of the wp_posts table, such as publish, draft, or inherit; or the keyword any. Default: any
$args[‘post_mime_type’](string) A full or partial mime-type, e.g. image, video, video/mp4, which is matched against a post’s post_mime_typefield
$output(常数) Variable type of the array items returned by the function: one of OBJECT, ARRAY_A, ARRAY_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().