tax_query not working, anything change in latest version?
-
I’m using the following code to do a tax_query and it doesn’t seem to work anymore..
At some point it was working and for the life of me it wont, anymore.
<?php global $pf_override; class PF_override { public $site_terms = array(); function __construct() { // add filters add_filter( 'init', array( &$this, 'populates_site_terms' ) ); add_filter( 'pre_get_posts', array( &$this, 'filter_query' ) ); } function populates_site_terms() { // my actual function does some processing and // checks caches and combines IDs from multiple // different sources here and then sets site_terms $this->site_terms = array( 1, 2, 3 ); } function filter_query( $query ) { // not the main query? if ( !$query->is_main_query() ) { return $query; } // have terms to filter by? if ( !empty( $this->site_terms ) ) { // construct tax_query $tax_query = array( 'taxonomy' => 'site_category', 'field' => 'id', 'terms' => $this->site_terms, 'operator' => 'IN' ); // this needs to be an array of arrays $taxquery = array( $tax_query ); // set this.. $query->set( 'tax_query', $taxquery ); } // return new query object return $query; } } // not the admin? init class if ( !is_admin() ) { $pf_override = new PF_override(); } ?>
Taxonomy is added like so:
function PF_register_post_type() { $labels = array( 'name' => _x( 'Site Category', 'taxonomy general name' ), 'singular_name' => _x( 'Site Category', 'taxonomy singular name' ), 'search_items' => __( 'Search Site Categories' ), 'all_items' => __( 'All Site Categories' ), 'parent_item' => __( 'Parent Site Category' ), 'parent_item_colon' => __( 'Parent Site Category:' ), 'edit_item' => __( 'Edit Site Category' ), 'update_item' => __( 'Update Site Category' ), 'add_new_item' => __( 'Add New Site Category' ), 'new_item_name' => __( 'New Site Category Name' ), 'menu_name' => __( 'Site Category' ), ); $args = array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'sitecat' ), ); register_taxonomy( 'site_category', array( 'post', 'page', 'attachment', 'revision', 'nav_menu_item' ), $args ); } add_action( 'init', 'PF_register_post_types', 1 );
In my footer.php I add this code:
$GLOBALS['wp_query']->request
I get this as a result when going to mydomain.com/testing:
SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name = 'testing' AND wp_posts.post_type = 'post' ORDER BY wp_posts.post_date DESC
The $pf_override variable shows $pf_override->site_terms to be set as an array of
array( [0] => 1, [1] => 2, [2] => 3 )
Viewing 2 replies - 1 through 2 (of 2 total)
Viewing 2 replies - 1 through 2 (of 2 total)
- The topic ‘tax_query not working, anything change in latest version?’ is closed to new replies.