Filtrar as postagens da categoria filho do arquivo da categoria pai não está funcionando

Neste exemplo, o gato 5 é a categoria pai e 42 é uma subcategoria. Eu o arquivo principal da categoria 5 eu não quero nenhuma publicação da subcategoria 42 exibindo.

Por que isso não está funcionando?

function filter_cat5_archive( $wp_query ) { if ( ! is_admin() && $wp_query->is_main_query() && $wp_query->is_category( 5 ) ) { $wp_query->set( 'category__not_in', '42' ); } } add_filter( 'pre_get_posts', 'filter_cat5_archive' ); 

Isso não faz nada. Mas o seguinte filtra os resultados, mas lança um erro de debugging _doing_it_wrong.

is_main_query foi chamado incorretamente. Em pre_get_posts, use o método WP_Query-> is_main_query (), e não a function is_main_query (). Consulte https://codex.wordpress.org/Function_Reference/is_main_query .

 if ( ! is_admin() && is_main_query() && $wp_query->is_category( 5 ) ) { $wp_query->set( 'category__not_in', '42' ); } 

O que estou perdendo aqui?

Solutions Collecting From Web of "Filtrar as postagens da categoria filho do arquivo da categoria pai não está funcionando"