Ticket #4943: get_posts_category_list_and_exclusion.diff
| File get_posts_category_list_and_exclusion.diff, 2.0 KB (added by johnjosephbachir, 6 years ago) |
|---|
-
wp-includes/post.php
178 178 else 179 179 parse_str($args, $r); 180 180 181 $defaults = array('numberposts' => 5, 'offset' => 0, 'category' => 0,181 $defaults = array('numberposts' => 5, 'offset' => 0, 'category' => '', 'category_exclude' = 0, 182 182 'orderby' => 'post_date', 'order' => 'DESC', 'include' => '', 'exclude' => '', 183 183 'meta_key' => '', 'meta_value' =>'', 'post_type' => 'post', 'post_status' => 'publish', 'post_parent' => 0); 184 184 $r = array_merge($defaults, $r); 185 185 extract($r, EXTR_SKIP); 186 186 $numberposts = (int) $numberposts; 187 187 $offset = (int) $offset; 188 $category = (int) $category; 188 // $category = (int) $category; should remain textual 189 $category_exclude = ( 1 == (int)$category_exclude ? 'NOT' : ''); 189 190 $post_parent = (int) $post_parent; 190 191 191 192 $inclusions = ''; 192 193 if ( !empty($include) ) { 193 194 $offset = 0; //ignore offset, category, exclude, meta_key, and meta_value, post_parent if using include 194 $category = 0;195 $category = ''; 195 196 $exclude = ''; 196 197 $meta_key = ''; 197 198 $meta_value = ''; … … 232 233 $query .= empty( $post_type ) ? '' : "AND post_type = '$post_type' "; 233 234 $query .= empty( $post_status ) ? '' : "AND post_status = '$post_status' "; 234 235 $query .= "$exclusions $inclusions " ; 235 $query .= empty( $category ) ? '' : "AND ($wpdb->posts.ID = $wpdb->post2cat.post_id AND $wpdb->post2cat.category_id = " . $category. ") ";236 $query .= empty( $category ) ? '' : "AND ($wpdb->posts.ID = $wpdb->post2cat.post_id AND $wpdb->post2cat.category_id $category_exclude IN (" . $category. ")) "; 236 237 $query .= empty( $post_parent ) ? '' : "AND $wpdb->posts.post_parent = '$post_parent' "; 237 238 $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' )"; 238 239 $query .= " GROUP BY $wpdb->posts.ID ORDER BY " . $orderby . ' ' . $order;
