Ersetze globale wp_query

Ich habe eine Website, die eine benutzerdefinierte Abfrage verwendet, um nach Posts nach Land zu suchen.

Die Suchergebnisse werden wieder korrekt angezeigt. Die Seitennumerierung zeigt jedoch die Gesamtzahl der Posts auf der Site an, anstatt die Gesamtzahl der Posts in den Suchergebnissen.

Das Plug-In, das dies verwaltet, verwendet globale $ wp_query, um die Anzahl der Posts anstelle der benutzerdefinierten Abfrage zu bestimmen. Standardmäßig funktioniert es wie folgt:

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; } 

Ich habe versucht, es zu ändern:

 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; } 

Aber das gibt keine Seiten zurück.

Idealerweise sollte ich den $ wp_query-Wert durch den $ gallery_query-Wert ersetzen, weiß aber nicht, wie. Das offensichtliche $wp_query = $gallery_query funktioniert nicht.

Irgendwelche Vorschläge?

Vielen Dank!

ty

Solutions Collecting From Web of "Ersetze globale wp_query"

Erstens würde ich ernsthaft darüber nachdenken, ein anderes Plugin zu wählen (es wurde seit über 2 Jahren nicht mehr gepflegt), oder ich nutze die integrierten paginate_links von WP.

Aber, auf der Suche nach einer Lösung, versuchen Sie es:

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