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');