0

WP投稿にいくつかのメタ変数を設定しました。これらの変数で並べ替えることができるようにしたいのですが、「ビュー」または「いいね」で並べ替える場合を除いて、すべてがうまく機能しています。これらの2つのフィールドのいずれかで並べ替えると、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');
4

1 に答える 1

0

これを閉じて、allaireの提案に従ってhttps://wordpress.stackexchange.com/に移動します。

この問題を抱えている人なら誰でも、helenhousandiがすぐに解決策を見つけました。https://wordpress.stackexchange.com/a/52408/16201

于 2012-05-17T11:42:01.660 に答える