我创建了一个非层次化的自定义帖子类型,默认情况下,它是按发布日期排序的。
我知道我可以用query_posts()
在存档模板中:
global $query_string;
query_posts( $query_string . \'&orderby=title&order=ASC\' );
但它需要在每个归档页上执行另一个SQL查询。有没有一种方法可以在本地注册排序顺序,最终甚至在管理员中也可以按标题对帖子进行排序?
最合适的回答,由SO网友:Chris Carson 整理而成
Try...
add_filter("posts_orderby", "my_orderby_filter", 10, 2);
function my_orderby_filter($orderby, &$query){
global $wpdb;
//figure out whether you want to change the order
if (get_query_var("post_type") == "my_post_type") {
return "$wpdb->posts.post_title ASC";
}
return $orderby;
}