Get rid of redundant ->tax_query. See #12891
git-svn-id: http://svn.automattic.com/wordpress/trunk@15765 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
c3a31b6576
commit
50dc04d43b
|
@ -146,7 +146,7 @@ function redirect_canonical($requested_url=null, $do_redirect=true) {
|
|||
} elseif ( is_category() || is_tag() || is_tax() ) { // Terms (Tags/categories)
|
||||
|
||||
$term_count = 0;
|
||||
foreach ( $wp_query->tax_query as $tax_query )
|
||||
foreach ( $wp_query->get('tax_query') as $tax_query )
|
||||
$term_count += count( $tax_query['terms'] );
|
||||
|
||||
$obj = $wp_query->get_queried_object();
|
||||
|
|
|
@ -563,27 +563,6 @@ class WP_Object_Query {
|
|||
*/
|
||||
var $meta_query = array();
|
||||
|
||||
/*
|
||||
* List of taxonomy queries
|
||||
*
|
||||
* A query is an associative array:
|
||||
* - 'taxonomy' string|array The taxonomy being queried
|
||||
* - 'terms' string|array The list of terms
|
||||
* - 'field' string (optional) Which term field is being used.
|
||||
* Possible values: 'term_id', 'slug' or 'name'
|
||||
* Default: 'slug'
|
||||
* - 'operator' string (optional)
|
||||
* Possible values: 'IN' and 'NOT IN'.
|
||||
* Default: 'IN'
|
||||
* - 'include_children' bool (optional) Whether to include child terms.
|
||||
* Default: true
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @access public
|
||||
* @var array
|
||||
*/
|
||||
var $tax_query = array();
|
||||
|
||||
/*
|
||||
* Populates the $meta_query property
|
||||
*
|
||||
|
@ -694,16 +673,26 @@ class WP_Object_Query {
|
|||
* @access protected
|
||||
* @since 3.1.0
|
||||
*
|
||||
* @uses $this->tax_query
|
||||
* @param array $tax_query List of taxonomy queries. A single taxonomy query is an associative array:
|
||||
* - 'taxonomy' string|array The taxonomy being queried
|
||||
* - 'terms' string|array The list of terms
|
||||
* - 'field' string (optional) Which term field is being used.
|
||||
* Possible values: 'term_id', 'slug' or 'name'
|
||||
* Default: 'slug'
|
||||
* - 'operator' string (optional)
|
||||
* Possible values: 'IN' and 'NOT IN'.
|
||||
* Default: 'IN'
|
||||
* - 'include_children' bool (optional) Whether to include child terms.
|
||||
* Default: true
|
||||
*
|
||||
* @param string $object_id_column
|
||||
* @return string
|
||||
*/
|
||||
function get_tax_sql( $object_id_column ) {
|
||||
function get_tax_sql( $tax_query, $object_id_column ) {
|
||||
global $wpdb;
|
||||
|
||||
$sql = array();
|
||||
foreach ( $this->tax_query as $query ) {
|
||||
foreach ( $tax_query as $query ) {
|
||||
if ( !isset( $query['include_children'] ) )
|
||||
$query['include_children'] = true;
|
||||
|
||||
|
|
|
@ -1081,7 +1081,6 @@ class WP_Query extends WP_Object_Query {
|
|||
unset($this->posts);
|
||||
unset($this->query);
|
||||
$this->query_vars = array();
|
||||
$this->tax_query = array();
|
||||
$this->meta_query = array();
|
||||
unset($this->queried_object);
|
||||
unset($this->queried_object_id);
|
||||
|
@ -1399,7 +1398,15 @@ class WP_Query extends WP_Object_Query {
|
|||
do_action_ref_array('parse_query', array(&$this));
|
||||
}
|
||||
|
||||
function parse_tax_query( $q ) {
|
||||
/*
|
||||
* Populates the 'tax_query' property
|
||||
*
|
||||
* @access protected
|
||||
* @since 3.1.0
|
||||
*
|
||||
* @param array &$q The query variables
|
||||
*/
|
||||
function parse_tax_query( &$q ) {
|
||||
if ( ! empty( $q['tax_query'] ) && is_array( $q['tax_query'] ) ) {
|
||||
$tax_query = $q['tax_query'];
|
||||
} else {
|
||||
|
@ -1502,9 +1509,9 @@ class WP_Query extends WP_Object_Query {
|
|||
);
|
||||
}
|
||||
|
||||
$this->tax_query = $tax_query;
|
||||
$q['tax_query'] = $tax_query;
|
||||
|
||||
foreach ( $this->tax_query as $query ) {
|
||||
foreach ( $q['tax_query'] as $query ) {
|
||||
if ( 'IN' == $query['operator'] ) {
|
||||
switch ( $query['taxonomy'] ) {
|
||||
case 'category':
|
||||
|
@ -1845,7 +1852,7 @@ class WP_Query extends WP_Object_Query {
|
|||
$search = apply_filters_ref_array('posts_search', array( $search, &$this ) );
|
||||
|
||||
// Taxonomies
|
||||
if ( !empty( $this->tax_query ) ) {
|
||||
if ( !empty( $q['tax_query'] ) ) {
|
||||
if ( empty($post_type) ) {
|
||||
$post_type = 'any';
|
||||
$post_status_join = true;
|
||||
|
@ -1853,11 +1860,11 @@ class WP_Query extends WP_Object_Query {
|
|||
$post_status_join = true;
|
||||
}
|
||||
|
||||
$where .= $this->get_tax_sql( "$wpdb->posts.ID" );
|
||||
$where .= $this->get_tax_sql( $q['tax_query'], "$wpdb->posts.ID" );
|
||||
|
||||
// Back-compat
|
||||
if ( !empty( $ids ) ) {
|
||||
$cat_query = wp_list_filter( $this->tax_query, array( 'taxonomy' => 'category' ) );
|
||||
$cat_query = wp_list_filter( $q['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' );
|
||||
|
@ -2514,8 +2521,10 @@ class WP_Query extends WP_Object_Query {
|
|||
$this->queried_object = NULL;
|
||||
$this->queried_object_id = 0;
|
||||
|
||||
if ( $this->tax_query ) {
|
||||
$query = reset( $this->tax_query );
|
||||
$tax_query = $this->get('tax_query');
|
||||
|
||||
if ( !empty( $tax_query ) ) {
|
||||
$query = reset( $tax_query );
|
||||
if ( 'term_id' == $query['field'] )
|
||||
$term = get_term( reset( $query['terms'] ), $query['taxonomy'] );
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue