Czy zdarzyło Ci się kiedyś, że na stronie z rozbudowanym drzewem kategorii, chciałeś ukryć wpisy z podkategorii w widoku archiwum danej kategorii? Z pytaniem tym spotykam się dość często, więc może warto pokazać, jak należy się za to zabrać.
Poniżej znajdziesz kod, który realizuje dokładnie takie zadanie:
function prefiks_exclude_subcategory_from_category_archive( $query ) {
if ( !is_admin() && $query->is_main_query() && is_category() ) {
$category_not_in = $query->get( 'category__not_in', array() );
if ( $query->get('cat', false) ) {
$query->set('tax_query', array( array(
'taxonomy' => 'category',
'operator' => 'IN',
'terms' => $query->get('cat'),
'include_children' => false,
) ));
}
}
}
add_filter( 'pre_get_posts', 'prefiks_exclude_subcategory_from_category_archive' );