Changeset 4503
- Timestamp:
- 11/20/2006 04:23:12 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/post.php
r4495 r4503 9 9 } 10 10 11 function &get_children($ post = 0, $output = OBJECT) {11 function &get_children($args = '', $output = OBJECT) { 12 12 global $post_cache, $wpdb; 13 13 14 if ( empty($ post) ) {14 if ( empty($args) ) { 15 15 if ( isset($GLOBALS['post']) ) 16 $ post_parent = & $GLOBALS['post']->post_parent;16 $r = array('post_parent' => & $GLOBALS['post']->post_parent); 17 17 else 18 18 return false; 19 } elseif ( is_object($post) ) { 20 $post_parent = $post->post_parent; 21 } else { 22 $post_parent = $post; 23 } 24 25 $post_parent = (int) $post_parent; 26 27 $query = "SELECT * FROM $wpdb->posts WHERE post_parent = $post_parent"; 28 29 $children = $wpdb->get_results($query); 19 } elseif ( is_object($args) ) 20 $r = array('post_parent' => $post->post_parent); 21 elseif ( is_numeric($args) ) 22 $r = array('post_parent' => $args); 23 elseif ( is_array($args) ) 24 $r = &$args; 25 else 26 parse_str($args, $r); 27 28 $defaults = array('numberposts' => -1, 'post_type' => '', 'post_status' => '', 'post_parent' => 0); 29 $r = array_merge($defaults, $r); 30 31 $children = get_posts( $r ); 30 32 31 33 if ( $children ) { … … 159 161 parse_str($args, $r); 160 162 161 $defaults = array('numberposts' => 5, 'offset' => 0, 'category' => '', 162 'orderby' => 'post_date', 'order' => 'DESC', 'include' => '', 'exclude' => '', 'meta_key' => '', 'meta_value' =>''); 163 $defaults = array('numberposts' => 5, 'offset' => 0, 'category' => 0, 164 'orderby' => 'post_date', 'order' => 'DESC', 'include' => '', 'exclude' => '', 165 'meta_key' => '', 'meta_value' =>'', 'post_type' => 'post', 'post_status' => 'publish', 'post_parent' => 0); 163 166 $r = array_merge($defaults, $r); 164 167 extract($r); 168 $numberposts = (int) $numberposts; 169 $offset = (int) $offset; 170 $category = (int) $category; 171 $post_parent = (int) $post_parent; 165 172 166 173 $inclusions = ''; 167 174 if ( !empty($include) ) { 168 $offset = 0; //ignore offset, category, exclude, meta_key, and meta_value paramsif using include169 $category = '';175 $offset = 0; //ignore offset, category, exclude, meta_key, and meta_value, post_parent if using include 176 $category = 0; 170 177 $exclude = ''; 171 178 $meta_key = ''; 172 179 $meta_value = ''; 180 $post_parent = 0; 173 181 $incposts = preg_split('/[\s,]+/',$include); 174 182 $numberposts = count($incposts); // only the number of posts included … … 201 209 202 210 $query ="SELECT DISTINCT * FROM $wpdb->posts " ; 203 $query .= ( empty( $category ) ? "" : ", $wpdb->post2cat " ) ; 204 $query .= ( empty( $meta_key ) ? "" : ", $wpdb->postmeta " ) ; 205 $query .= " WHERE (post_type = 'post' AND post_status = 'publish') $exclusions $inclusions " ; 206 $query .= ( empty( $category ) ? "" : "AND ($wpdb->posts.ID = $wpdb->post2cat.post_id AND $wpdb->post2cat.category_id = " . $category. ") " ) ; 207 $query .= ( empty( $meta_key ) | empty($meta_value) ? "" : " AND ($wpdb->posts.ID = $wpdb->postmeta.post_id AND $wpdb->postmeta.meta_key = '$meta_key' AND $wpdb->postmeta.meta_value = '$meta_value' )" ) ; 208 $query .= " GROUP BY $wpdb->posts.ID ORDER BY " . $orderby . " " . $order . " LIMIT " . $offset . ',' . $numberposts ; 211 $query .= ( empty( $category ) ? "" : ", $wpdb->post2cat " ); 212 $query .= ( empty( $meta_key ) ? "" : ", $wpdb->postmeta " ); 213 $query .= " WHERE (post_type = 'post' AND post_status = 'publish') $exclusions $inclusions "; 214 $query .= ( empty( $category ) ? "" : "AND ($wpdb->posts.ID = $wpdb->post2cat.post_id AND $wpdb->post2cat.category_id = " . $category. ") " ); 215 $query .= ( empty( $meta_key ) | empty($meta_value) ? "" : " AND ($wpdb->posts.ID = $wpdb->postmeta.post_id AND $wpdb->postmeta.meta_key = '$meta_key' AND $wpdb->postmeta.meta_value = '$meta_value' )" ); 216 $query .= " GROUP BY $wpdb->posts.ID ORDER BY " . $orderby . " " . $order . " LIMIT " . $offset . ',' . $numberposts; 217 218 $query = "SELECT DISTINCT * FROM $wpdb->posts "; 219 $query .= empty( $category ) ? '' : ", $wpdb->post2cat "; 220 $query .= empty( $meta_key ) ? '' : ", $wpdb->postmeta "; 221 $query .= " WHERE 1=1 "; 222 $query .= empty( $post_type ) ? '' : "AND post_type = '$post_type' "; 223 $query .= empty( $post_status ) ? '' : "AND post_status = '$post_status' "; 224 $query .= "$exclusions $inclusions " ; 225 $query .= empty( $category ) ? '' : "AND ($wpdb->posts.ID = $wpdb->post2cat.post_id AND $wpdb->post2cat.category_id = " . $category. ") "; 226 $query .= empty( $post_parent ) ? '' : "AND $wpdb->posts.post_parent = '$post_parent' "; 227 $query .= empty( $meta_key ) | empty($meta_value) ? '' : " AND ($wpdb->posts.ID = $wpdb->postmeta.post_id AND $wpdb->postmeta.meta_key = '$meta_key' AND $wpdb->postmeta.meta_value = '$meta_value' )"; 228 $query .= " GROUP BY $wpdb->posts.ID ORDER BY " . $orderby . ' ' . $order; 229 if ( 0 < $numberposts ) 230 $query .= " LIMIT " . $offset . ',' . $numberposts; 209 231 210 232 $posts = $wpdb->get_results($query);
Note: See TracChangeset
for help on using the changeset viewer.