Languages: English • Italiano • 한국어 • children 日本語 Português do Brasil • Русский • (Add your language)
get_children() retrieves attachments, revisions, or sub-pages, possibly by post parent. It works similar to get_posts().
<?php $children_array = get_children( $args, $output ); ?>
<?php $args = array( 'post_parent' => 0, 'post_type' => 'any', 'numberposts' => -1, 'post_status' => 'any' ); $children = get_children( $args ); ?>
As of Version 2.6, you must pass a non-empty post_type parameter (either attachment or page).
The following options are available in the $args array:
Note: See get_posts() for a full list of $args parameters.
Note: Prior to Version 2.9, the return value would be false when no children found.
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().