从模板中删除所有查询代码,只保留默认循环。在示例代码中,您正在覆盖模板中的查询,在粘贴到注释中的代码中,您正在运行一个全新的查询。使用时,这两者都是不必要的pre_get_posts
.
把你的pre_get_posts
代码输入functions.php
. 你不必通过$paged
或者,除了设置要修改的特定参数之外,还可以执行任何其他操作,在查询发生之前,此代码正在运行:
function pregp_wpse_102658( $qry ) {
if ( $qry->is_main_query() && $qry->is_category( \'expiresoon\' ) ) {
$qry->set(\'meta_key\',\'hmeromhnia_lhkshs\');
$qry->set(\'orderby\',\'meta_value_num\');
$qry->set(\'order\',\'ASC\');
$qry->set(\'posts_per_page\',9);
}
}
add_action(\'pre_get_posts\',\'pregp_wpse_102658\');
然后在模板中使用普通的香草循环:
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// The Loop
endwhile;
endif;
如果此特定类别没有其他特殊之处,则不再需要特定于该类别的类别模板,因为查询修改现在发生在模板之外。