Внести изменения в таксономии, чтобы исключить или добавить элементы через хуки или фильтры
	  Гость |  24 октября 2017, 22:57  |  1
Нужно внести изменения в $wp_query так, чтобы это работало через фильтры. Основная проблема кроется в том, что после объявления WP_Query, tax_query уже не изменить. Скажем, вот код:
function dummy_test( $wp_query){
$tax_query = array(
             'relation' => 'OR',
             array(
               'taxonomy' => 'tax1',
               'terms' => array( 'term1', 'term2' ),
               'field' => 'slug',
             ),
             array(
               'taxonomy' => 'tax2',
               'terms' => array( 'term-a', 'term-b' ),
               'field' => 'slug',
             ),
           );
$wp_query->set( 'tax_query', $tax_query );
);
add_action('pre_get_posts','dummy_test');
Что можно придумать?
Wordpress
Решения
Чтобы внести изменения в tax_query, достаточно получить текущие данные, а затем добавить к ним свои фильтры.
function my_tax_query( $query ) { $package_id = 12345; $tax_query = array( 'taxonomy' => 'package_id', 'terms' => array( $package_id ), 'field' => 'slug', 'operator' => 'IN', ); $query->tax_query->queries[] = $tax_query; $query->query_vars['tax_query'] = $query->tax_query->queries; } add_action( 'pre_get_posts', 'my_tax_query' );