У меня есть пользовательский тип сообщения - Идеи. У него есть 2 пользовательских таксономии - idea_cat
и education_level
.
. Сейчас я нахожусь на странице архива idea_cat
и хочу отфильтровать записи по термину в education_level
, используя pre_get_posts
.
Я использую этот код -
function target_main_category_query_with_conditional_tags( $query ) {
if ( ! is_admin() && $query->is_main_query() ) {
// Not a query for an admin page.
// It's the main query for a front end page of your site.
if ( is_tax( 'idea_cat' ) ) {
if ( isset( $_GET['term_education_level'] ) && $_GET['term_education_level'] != '' ) {
$tax_query = array(
array(
'taxonomy' => 'idea_cat',
'field' => 'slug',
'terms' => $query->query['idea_cat'],
'operator' => 'IN',
'include_children' => 1
),
array(
'taxonomy' => 'education_level',
'field' => 'slug',
'terms' => esc_html( $_GET['term_education_level'] )
)
);
$query->tax_query->queries = $tax_query;
}
}
}
}
add_action( 'pre_get_posts', 'target_main_category_query_with_conditional_tags' );