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