wake-up-neo.com

Wordpress-Paginierung funktioniert nicht mit Suchseite

Auf meiner Suchseite gibt Meine Anfrage 11 Seiten mit dieser Suche zurück: ?q=2&s=chem

Aber wenn ich versuche, auf eine andere Seite als die erste zuzugreifen, wie zum Beispiel ?q=2&s=chem&paged=2, zeigt WordPress error not found an.

Hinweis: Wenn ich die Variable s in der URL leer lasse, habe ich kein Problem.

Das ist mein WP_Query:

$args = array(

'number' => $number,
'offset' => $paged ? ($paged - 1) * $number : 0,
's' => $_GET['s'],
'meta_query' => array(
    'relation' => 'OR',
    [
        'key'          => 'comp_name',
        'value'        => $_GET['s'],
        'compare'      => 'LIKE'
    ]
),);

Weiß jemand, wie man dieses Problem behebt?

1
hasan movahed

standardmäßig hat WordPress eine eigene Hauptabfrage auf der Suchseite. In Ihrem Fall haben Sie die Hauptabfrage nicht geändert und nur eine benutzerdefinierte Abfrage erstellt

paged ist eine reservierte Abfragevariable, die zuerst von Ihrer Hauptabfrage verwendet wird. Wenn Ihre Hauptabfrage dieselben Ergebnisse liefert, haben Sie den Fehler 404. Sie haben drei Möglichkeiten:

1. Auslagerungsvariable ändern

sie können Ihre Seitenvariable von ausgelagert in Seite oder etwas anderes umbenennen, das von WordPress standardmäßig nicht verwendet wird

2. 404-Seite überschreiben

function override_404() 
{
    if ( is_search() && isset($_GET['s'])) {
        global $wp_query;
        $wp_query->is_404 = false;
    }
}
add_action('init', 'override_404');

3. Hauptabfrage überschreiben (am besten)

function change_search_query() {
    if ( is_search() && isset($_GET['s'])) {
        $args = array();
        query_posts( $args );
    }
}
add_action('init', 'change_search_query');
1
RezaSh