Ticket #5433: 5433.diff
| File 5433.diff, 4.0 KB (added by Otto42, 4 years ago) |
|---|
-
wp-includes/query.php
969 969 } 970 970 971 971 if ( !empty($q['category__in']) ) { 972 $join = " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";973 $whichcat .= " AND $wpdb->term_taxonomy.taxonomy = 'category' ";974 972 $include_cats = "'" . implode("', '", $q['category__in']) . "'"; 975 $ whichcat .= " AND $wpdb->term_taxonomy.term_id IN ($include_cats) ";973 $join .= " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id AND $wpdb->term_taxonomy.taxonomy = 'category' AND $wpdb->term_taxonomy.term_id IN ($include_cats)) "; 976 974 } 977 975 978 976 if ( !empty($q['category__not_in']) ) { … … 1010 1008 1011 1009 $q['cat'] = $reqcat; 1012 1010 1013 $join = " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";1014 $whichcat = " AND $wpdb->term_taxonomy.taxonomy = 'category' ";1015 1011 $in_cats = array($q['cat']); 1016 1012 $in_cats = array_merge($in_cats, get_term_children($q['cat'], 'category')); 1017 1013 $in_cats = "'" . implode("', '", $in_cats) . "'"; 1018 $ whichcat .= "AND $wpdb->term_taxonomy.term_id IN ($in_cats)";1014 $join .= " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id AND $wpdb->term_taxonomy.taxonomy = 'category' AND $wpdb->term_taxonomy.term_id IN ($in_cats))"; 1019 1015 $groupby = "{$wpdb->posts}.ID"; 1020 1016 } 1021 1017 … … 1045 1041 } 1046 1042 1047 1043 if ( !empty($q['tag__in']) ) { 1048 $join = " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";1049 $whichcat .= " AND $wpdb->term_taxonomy.taxonomy = 'post_tag' ";1050 1044 $include_tags = "'" . implode("', '", $q['tag__in']) . "'"; 1051 $ whichcat .= " AND $wpdb->term_taxonomy.term_id IN ($include_tags) ";1045 $join .= " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id AND $wpdb->term_taxonomy.taxonomy = 'post_tag' AND $wpdb->term_taxonomy.term_id IN ($include_tags)) "; 1052 1046 $reqtag = is_term( $q['tag__in'][0], 'post_tag' ); 1053 1047 if ( !empty($reqtag) ) 1054 1048 $q['tag_id'] = $reqtag['term_id']; 1055 1049 } 1056 1050 1057 1051 if ( !empty($q['tag_slug__in']) ) { 1058 $join = " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) INNER JOIN $wpdb->terms ON ($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id) ";1059 $whichcat .= " AND $wpdb->term_taxonomy.taxonomy = 'post_tag' ";1060 1052 $include_tags = "'" . implode("', '", $q['tag_slug__in']) . "'"; 1061 $ whichcat .= " AND $wpdb->terms.slug IN ($include_tags) ";1053 $join .= " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) INNER JOIN $wpdb->terms ON ($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id AND $wpdb->term_taxonomy.taxonomy = 'post_tag' AND $wpdb->terms.slug IN ($include_tags)) "; 1062 1054 $reqtag = is_term( $q['tag_slug__in'][0], 'post_tag' ); 1063 1055 if ( !empty($reqtag) ) 1064 1056 $q['tag_id'] = $reqtag['term_id'];
