2012-07-03 2 views
0

사용자 지정 쿼리를 사용하여 국가별로 게시물을 검색하는 사이트가 있습니다.wp_query 값 바꾸기

검색 결과가 정상적으로 돌아 왔지만 하단의 페이지 매김은 검색 결과의 총 게시물 수가 아닌 사이트의 총 게시물 수를 나타냅니다.

이 플러그인을 관리하는 플러그인은 글로벌 $ wp_query를 사용하여 사용자 지정 쿼리 대신 게시물 수를 결정합니다.

function wp_page_numbers($start = "", $end = "") 
{ 
    global $wp_query; 
    global $max_page; 
    global $paged; 
    if (!$max_page) { $max_page = $wp_query->max_num_pages; } 
    if (!$paged) { $paged = 1; } 

    $settings = get_option('wp_page_numbers_array'); 
    $page_of_page = $settings["page_of_page"]; 
    $page_of_page_text = $settings["page_of_page_text"]; 
    $page_of_of = $settings["page_of_of"]; 

    $next_prev_text = $settings["next_prev_text"]; 
    $show_start_end_numbers = $settings["show_start_end_numbers"]; 
    $show_page_numbers = $settings["show_page_numbers"]; 

    $limit_pages = $settings["limit_pages"]; 
    $nextpage = $settings["nextpage"]; 
    $prevpage = $settings["prevpage"]; 
    $startspace = $settings["startspace"]; 
    $endspace = $settings["endspace"]; 

    if($nextpage == "") { $nextpage = ">"; } 
    if($prevpage == "") { $prevpage = "<"; } 
    if($startspace == "") { $startspace = "..."; } 
    if($endspace == "") { $endspace = "..."; } 

    if($limit_pages == "") { $limit_pages = "10"; } 
    elseif ($limit_pages == "0") { $limit_pages = $max_page; } 

내가이 그것을 수정 시도 : 기본적으로는 다음과 같이 작동

if ($gallery_query){ $page_query=$gallery_query; }else {$page_query=$wp_query;} 
    global $max_page; 
    global $paged; 
    if (!$max_page) { $max_page = $page_query->max_num_pages; } 
    if (!$paged) { $paged = 1; } 

을하지만 그 어떤 페이지를 반환하지 않습니다.

이상적으로는 $ wp_query 값을 $ gallery_query 값으로 대체해야하지만 어떻게해야할지 모르겠다. 명백한 $wp_query = $gallery_query가 작동하지 않습니다.

제안 사항?

감사합니다. 이것에 대한 TheDeadMedic

타이

+0

'if ($ gallery_query)'는 $ gallery_query의 값이 존재하는지 확인합니다. 그게 니가 원하는거야? if 조건을 gallery_query가 필요한 쿼리를 확인할 수있는 것으로 변경하십시오. BTW, 올바른 결과가 표시되면이를 편집하지 않아도됩니다. 검색 결과의 총 개수가 출력되는 경우 코드는 어디에 있습니까? – anuragbh

답변

0

감사합니다 :

function wp_page_numbers_custom($wp_query, $start = '', $end = '') 
{ 
    $_backup = array(
     'wp_query' => @ $GLOBALS['wp_query'], 
     'max_page' => @ $GLOBALS['max_page'], 
      'paged' => @ $GLOBALS['paged'], 
    ); 

    $GLOBALS['wp_query'] = $wp_query; 
    $GLOBALS['max_page'] = $wp_query->max_num_pages; 
     $GLOBALS['paged'] = max($wp_query->get('paged'), 1); 

    wp_page_numbers($start, $end); 

    foreach ($_backup as $var => $val) 
     $GLOBALS[ $var ] = $val; 
} 

// Example usage: wp_page_numbers_custom($gallery_query); 

그것은 전적으로 내 문제를 해결!

0

WP Page Numbers Plugin에서 동일한 문제가 발생했습니다. 문제의 또 다른 해결 방법은 검색 결과에 대한 $ wp_query를 수정 한 다음 원본으로 돌아 가야하는 경우 wp_reset_query를 수행하는 것입니다.