我有两个链接
“新闻”是所有新闻帖子的所在地,“博客”是其他帖子的所在地,只是想在博客页面中排除“新闻”类别
我使用代码
$news = new WP_query (\'category_name =-news\')
而且它不起作用基本上,我想告诉wordpress,我希望所有的帖子都进入“博客”页面,而不是归类为“新闻”的帖子
我有两个链接
“新闻”是所有新闻帖子的所在地,“博客”是其他帖子的所在地,只是想在博客页面中排除“新闻”类别
我使用代码
$news = new WP_query (\'category_name =-news\')
而且它不起作用基本上,我想告诉wordpress,我希望所有的帖子都进入“博客”页面,而不是归类为“新闻”的帖子
在您的功能中。php文件,使用pre_get_posts
并将下面代码中的-1替换为要从帖子页面中排除的类别ID。
function exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( \'cat\', \'-1\' );
}
}
add_action( \'pre_get_posts\', \'exclude_category\' );
使用参数cat
或category__not_in
:
$query = new WP_Query( \'cat=-1234\' );
减号表示排除,使用ID。$query = new WP_Query( array( \'category__not_in\' => array( 1234 ) ) );
也使用ID。使用get_cat_ID()
通过名称或get_category_by_slug()
要通过slug执行,后者返回一个对象。
使用pre_get_posts 胡克,我可以$query 作为论据。但在posts_where 和posts_join hook,我收到的是相应的子句,而不是查询。问题是钩子正在每个查询上运行,而不仅仅是主查询。给定以下代码,该代码将在页面运行的每个查询上执行一次:add_filter(\'posts_join\', \'my_join\'); function my_join($join) { echo \'lala\'; return $join; } 如何判断查询是否是主查询,使其