是的,即使要自定义查询,也应该使用循环和特定类别模板。为什么?:
即使有自定义页面,也会运行主查询。因此,对于自定义页面,您实际上并不是在回避主查询,而是将其替换为其他查询。
主查询本身是可自定义的。
如果你偏离了默认的WordPress行为,你将来将很难维护它,尤其是对于其他开发人员来说,如果将来有其他人接管你的工作,这将很困难。
如何修改主查询:幸运的是,WordPress是可定制的,这意味着主查询(循环)也是可定制的。您可以使用pre_get_posts
行动挂钩或query_posts()
函数更改主查询。但是,建议使用pre_get_posts
钩
例如,假设您希望根据日期升序更改类别中帖子的顺序。为此,您可以在主题的functions.php
文件:
add_action( \'pre_get_posts\', \'wpse258109_customize_category_query\' );
function wpse258109_customize_category_query( $query ) {
if( ! is_admin() && $query->is_main_query() && $query->is_category( \'your-category-slug\' ) ) {
// get the orderby value from where ever you want and set in the main query
$query->set( \'orderby\', array( \'date\' => \'ASC\' ) );
}
}
此代码将更改主查询和类别帖子的默认行为
your-category-slug
存档页将按升序加载。当然,您可以使用
WP_Query 班