query_posts
断开主查询对象($wp_query
)保存查询对象和所有相关查询信息,这些信息会破坏所有条件标记、分页和页面功能,这意味着尝试使用有关主查询对象的任何信息是完全无用的,因为它都被query_posts
正在重置主查询。
这是一个人永远不应该使用的首要原因query_posts
.
由于这是一个分类页面,只需删除以下行
cat = get_query_var(\'cat\');
$PozCat = get_category ($cat);
//$PozCat->id
query_posts(\'posts_per_page=-1&cat=\'.$PozCat->id);
您的分类页面将再次正常工作。如果需要更改类别页面上的主查询,请使用
pre_get_posts
在生成SQL以运行主查询之前,正确更改查询变量。以下内容将返回您分类页面上的所有帖子
add_action( \'pre_get_posts\', function ( $q )
{
if ( !is_admin() // Only target front end
&& $q->is_main_query() // Only target the main query
&& $q->is_category() // Only target category pages, change to $q->is_tax() for taxonomy pages
) {
$q->set( \'posts_per_page\', -1 );
}
});