我想在包含[最流行、最新、趋势]的主页上显示一个下拉列表,当用户选择其中一个时,帖子将被页面重新加载,并按该顺序排序。
现在,我正在使用查询字符串来检测排序顺序。对于eg:http://example.com/?sort=popular
或http://example.com/?sort=trending
. 然后在home.php
我检查查询字符串并编辑wp_query
对象的orderby
条款
我想问一下,这是一种正确的方法,还是有更好的方法来处理这个案件?因为我还想处理分页和其他事情。
在家里。php
/**
* check query for most popular.
*/
function check_for_popular() {
return get_query_var(\'sort\') == "popular";
}
function mp_home_loop() {
global $wp_query;
if( check_for_popular() ) {
$query = $wp_query->query_vars;
$wp_query = new WP_Query( wp_parse_args( array(
\'meta_key\' => \'popularity_score\',
\'orderby\' => \'meta_value_num\',
\'order\' => \'DESC\',
), $query ) );
}
include( CHILD_DIR . \'/mp_home_loop.php\' );
}
在函数中。phpadd_filter(\'query_vars\', \'add_query_vars\' );
function add_query_vars( $qvars ) {
$qvars[] = \'sort\';
return $qvars;
}