Codex tools: Log in
Languages: English • 日本語 • Português do Brasil • Русский • (Add your language)
Contents |
get_children() retrieves attachments, revisions, or sub-Pages, possibly by post parent. It works similarly to get_posts().
array $children =& get_children( mixed $args = "", constant $output = OBJECT);
Returns an associative array of posts (of variable type set by $output parameter) with post IDs as array keys, or an empty array if no posts are found.
Prior to Version 2.9, the return value would be false when no children found.
$defaults = array(
'post_parent' => 0,
'post_type' => 'any',
'numberposts' => -1,
'post_status' => 'any'
);
See get_posts() for a full list of parameters.
As of Version 2.6, you must pass a non-empty post_type parameter (either attachment or page).
If you just want to get or display attachments, it's probably a little easier to use get_posts() instead.
$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 );
}
This function retrieves the first image associated with a post
<?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 ) {
$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">';
}
}
}
In the example above, a primary array is keyed with the image ID (the exact thing which is being sought - since we don't know it how are we supposed to access it?). The code below provides an easier handle for the image information: the array $child_image. Should be used in the loop.
$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.
Since: 2.0.0
get_children() is located in wp-includes/post.php.
get_children() calls get_posts(), which calls $WP_Query->get_posts().
wp_get_attachment_link(), get_page_children()