Якщо потрібно виключити пости з рубрики та всіх її підрубрик, ми можемо використовувати попередній приклад і вказати ID рубрики і всіх підрубрик вручну.

Однак це не зручно адже, якщо ми додамо в цю рубрику нову підрубрику, нам доведеться додавати ID цієї продрубрікі в код, інакше пости з неї потраплять в стрічку, а нам цього не треба.

Щоб виключити пости з рубрики і автоматично із всіх її підрубрик, використовуйте наступний код, де потрібно вказати тільки ID батьківської рубрики, а ID всіх підрубрик будуть отримані автоматично:function exclude_cat_tree_from_feed( $query ){
if( ! $query->is_feed || ! $query->is_main_query() )
return;

// ID категории, дерево которой нужно исключить
$cat = 4;

$subcats = get_categories( «child_of=$cat» );

$subcat_string = »;
foreach( $subcats as $subcat) {
$subcat_string .= ‘-‘ . $subcat->cat_ID . ‘,';
}
$subcat_string .= «-$cat»;

$query->set( ‘cat’, $subcat_string );
}
add_filter( ‘pre_get_posts’, ‘exclude_cat_tree_from_feed’ );