WordPress获取文章子元素函数:get_children

WordPress函数get_children可用于获取文章下的附件、子页面,通常我用来获取文章缩略图。

get_children( array $args = '', constant $output = OBJECT )

函数参数

$args

数组或字符串值

get_children()函数$args参数默认的值如下:

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

get_children()函数$args参数可用的值如下:

numberposts

整数型,默认值:-1

指定返回信息的数量,默认不限制

post_parent

整数型,默认值:0

父元素的ID,指定一个文章ID,将返回该文章下的子元素

post_type

字符串值,默认值:any

指定文章类型,例如:attachment、page、revision,默认所有类型

post_status

字符串值,默认值:any

文章状态,例如:publish、draft、inherit

post_mime_type

字符串值,默认为空

指定文件的MIME类型,例如:image、video、video/mp4,在返回指定格式的附件时特别有用

函数返回值

Array (
	[240] => WP_Post Object (
	[ID] => 240
	[post_author] => 1
	[post_date] => 2014-07-25 09:27:19
	[post_date_gmt] => 2014-07-25 01:27:19
	[post_content] =>
	[post_title] => baiduseo
	[post_excerpt] =>
	[post_status] => inherit
	[comment_status] => open
	[ping_status] => closed
	[post_password] =>
	[post_name] => baiduseo
	[to_ping] =>
	[pinged] =>
	[post_modified] => 2014-07-25 09:27:19
	[post_modified_gmt] => 2014-07-25 01:27:19
	[post_content_filtered] =>
	[post_parent] => 239
	[guid] => http://localhost/wp-content/uploads/2014/07/baiduseo.jpg
	[menu_order] => 0
	[post_type] => attachment
	[post_mime_type] => image/jpeg
	[comment_count] => 0
	[filter] => raw )
)

函数使用示例

返回ID为239的文章下的所有图片:

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

获取文章第一张图片的缩略图:

<?php
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 ) {
			echo '<img src="' . wp_get_attachment_thumb_url( $attachment->ID ) . '" class="current">';
		}
	}
}
?>

扩展阅读

get_children()函数位于:wp-includes/post.php

相关函数:

阿里云