我在WP帖子上设置了一些元变量。我希望能够按这些变量进行排序,除非按“视图”或“喜欢”排序,否则一切都很有效。当我按这两个字段中的任何一个排序时,WP不会生成我的导航(wp_nav_menu)。
我已尝试“重置”围绕我的wp_nav_menu调用的$ wp_query变量:
$old_query = $wp_query;
$wp_query = new WP_Query( array('post_type' => 'any') );
wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) );
$wp_query = $old_query;
但这并没有解决它。唯一有效的方法就是注释掉以$ query-> query_vars ['meta_key']开头的行,但显然也会排除排序。
任何帮助将不胜感激。
// Before a query is run, modify the sort order
function jh_popularity_sort_query($query) {
$sort = $_GET['sort'];
if ($sort == "title") {
$query->query_vars['orderby'] = 'title';
$query->query_vars['order'] = 'ASC';
} else if ($sort == "date") {
$query->query_vars['orderby'] = 'date';
} else if ($sort == "views") {
$query->query_vars['meta_key'] = 'jh_page_views';
$query->query_vars['orderby'] = 'meta_value';
$query->query_vars['order'] = 'DESC';
} else if ($sort == "likes") {
$query->query_vars['meta_key'] = 'jh_page_likes';
$query->query_vars['orderby'] = 'meta_value';
$query->query_vars['order'] = 'DESC';
}
return $query;
} add_action('pre_get_posts', 'jh_popularity_sort_query');
答案 0 :(得分:0)
关闭此内容并转移到https://wordpress.stackexchange.com/每个allaire的建议。
对于有此问题的任何人,helenhousandi都有解决方案。 https://wordpress.stackexchange.com/a/52408/16201