这可以通过获取要显示的类别ID数组来实现。我们可以使用get_terms() 为此:
$taxonomy = array(
\'category\'
);
$args = array(
\'exclude\' => array(\'111\'),//id of the category term you want to exclude
\'fields\' => \'ids\'
);
$ct_ids = get_terms( $taxonomy, $args );
现在,您可以使用它创建第二个查询
WP_Query 通过使用
Category Parameter category__in
像这样:
$args = array(
\'category__in\' => $ct_ids
);
$scnd_query = new WP_Query( $args );
例如,如果您只想为主页执行此操作,则不需要自定义二次查询,您可以通过连接到
pre_get_posts 这样的动作:
function show_all_but_category_xyz( $query ) {
if ( !is_admin() && $query->is_home() && $query->is_main_query() ) {
$query->set( \'category__in\', $ct_ids );
}
}
add_action( \'pre_get_posts\', \'show_all_but_category_xyz\' );