Внести изменения в таксономии, чтобы исключить или добавить элементы через хуки или фильтры
Гость | 24 октября 2017, 22:57 | 1
Нужно внести изменения в $wp_query так, чтобы это работало через фильтры. Основная проблема кроется в том, что после объявления WP_Query, tax_query уже не изменить. Скажем, вот код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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'
);