2012-07-03 8 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 не работает.

Любые предложения?

Спасибо!

ти

+0

'if ($ gallery_query)' будет проверять, существует ли значение $ gallery_query. Вы уверены, что это то, что вы хотите? Просто измените условие if на то, с чем вы можете проверить запрос, который вам понадобится, - gallery_query. BTW, если отображаются правильные результаты, вам может не понадобиться редактировать это. Где код, в котором общее количество результатов поиска при выводе? – anuragbh

ответ

0

Благодаря TheDeadMedic для этого:

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. Другим решением проблемы является изменение $ wp_query для ваших результатов поиска, а затем wp_reset_query, если вам нужно вернуться к оригиналу.

Смежные вопросы