【问题标题】:Wordpress Menu Disappears when $query->query_vars['meta_key'] is set设置 $query->query_vars['meta_key'] 时,Wordpress 菜单消失
【发布时间】:2012-05-17 02:52:05
【问题描述】:

我在我的 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');

【问题讨论】:

标签: wordpress sorting metadata


【解决方案1】:

按照 allaire 的建议,关闭并转到 https://wordpress.stackexchange.com/

对于遇到此问题的任何人,helenhousandi 都提供了正确的解决方案。 https://wordpress.stackexchange.com/a/52408/16201

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 2012-04-03
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    相关资源
    最近更新 更多