首先,您不应该使用自定义查询来更改帖子的顺序。这可能会导致分页问题,而且肯定不是最优的。
所以首先要做的事。删除代码的该部分:
global $wp_query;
$args = array(
\'meta_key\' => \'publish_date\',
\'orderby\' => \'meta_value\',
\'order\' => \'DESC\'
);
$args = array_merge( $wp_query->query, $args );
query_posts( $args );
它所做的只是更改几个参数并再次调用查询。但有一个操作允许您在运行查询之前添加自定义参数:
pre_get_posts
. 您还可以使用它修改类别存档的顺序:
function my_set_custom_order( $query ) {
if ( ! is_admin() && $query->is_main_query() ) { // modify only main query on front-end
if ( is_home() ) {
$query->set( \'meta_key\', \'publish_date\' );
$query->set( \'orderby\', \'meta_value\' );
$query->set( \'order\', \'DESC\' );
}
if ( is_category( \'cats\' ) ) {
$query->set( \'meta_key\', \'cat_name\' );
$query->set( \'orderby\', \'meta_value\' );
$query->set( \'order\', \'ASC\' );
}
// ...
}
}
add_action( \'pre_get_posts\', \'my_set_custom_order\' );
这将对您的主页描述进行排序
publish_date
和您的猫分类ASC
cat_name
.
您可以在其中添加任何您想要/需要的内容,并且可以使用Conditional Tags 仅修改某些请求的查询。