2012-05-17 5 views
0

WP 게시물에 메타 변수를 설정했습니다. 이러한 변수별로 정렬 할 수 있기를 원하며 "보기"또는 "좋아요"별로 정렬 할 때를 제외하고 모든 것이 잘 작동합니다. 두 필드 중 하나를 기준으로 정렬 할 때 WP는 내 nav (wp_nav_menu)를 생성하지 않습니다.

나는 $의 wp_query 변수가 내 wp_nav_menu 호출을 둘러싼 "재설정"시도했습니다

:

$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'); 
+1

정답을 찾으려면 더 많은 행운이 있습니다. http://wordpress.stackexchange.com/ – allaire

+0

감사합니다. 나는 그것이 존재한다는 것을 깨닫지 못했다. –

+0

이것을 http://wordpress.stackexchange.com/questions/52402/wordpress-menu-disappears-when-query-query-varsmeta-key-is-set으로 옮겼으나 나는 스스로 대답 할 수없고 닫을 수 없다. 나는 아직 그 대리인이 없다. –

답변

관련 문제