1. Фильтр вешать на pre_get_posts
2.
function exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-5, -34' ); //замените на ваши id, но знак минуса оставьте
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category' );
3. Вроде нет