Внести изменения в таксономии, чтобы исключить или добавить элементы через хуки или фильтры
Гость | 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' );