From 70728369f92ca3191b8bccf414e536e76bae7975 Mon Sep 17 00:00:00 2001 From: scribu Date: Sat, 2 Oct 2010 18:03:06 +0000 Subject: [PATCH] Set 'cat' query var for backwards compatibility. Fixes #15007 git-svn-id: http://svn.automattic.com/wordpress/trunk@15685 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/functions.php | 2 +- wp-includes/query.php | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/wp-includes/functions.php b/wp-includes/functions.php index c2d7253ce..e0da6b69a 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -3033,7 +3033,7 @@ function wp_filter_object_list( $list, $args = array(), $operator = 'and', $fiel $filtered = array(); foreach ( $list as $key => $obj ) { - $matched = count(array_intersect_assoc(get_object_vars($obj), $args)); + $matched = count( array_intersect_assoc( (array) ($obj), $args ) ); if ( ('and' == $operator && $matched == $count) || ('or' == $operator && $matched <= $count) ) { if ( $field ) $filtered[] = $obj->$field; diff --git a/wp-includes/query.php b/wp-includes/query.php index d232589d4..ced07e742 100644 --- a/wp-includes/query.php +++ b/wp-includes/query.php @@ -1948,6 +1948,21 @@ class WP_Query { $where .= " AND $wpdb->posts.ID IN(" . implode( ', ', $ids ) . ")"; else $where .= ' AND 0 = 1'; + + // Back-compat + if ( !empty( $ids ) ) { + $cat_query = wp_filter_object_list( $tax_query, array( 'taxonomy' => 'category' ) ); + if ( !empty( $cat_query ) ) { + $cat_query = reset( $cat_query ); + $cat = get_term_by( $cat_query['field'], $cat_query['terms'][0], 'category' ); + if ( $cat ) { + $this->set('cat', $cat->term_id); + $this->set('category_name', $cat->slug); + } + } + } + + unset( $ids ); } if ( !empty($q['meta_key']) ) {