Nicht immer ist die Suche von WordPress erwünscht. Die eine oder andere Anwendung mit WordPress benötigt die Funktion nicht, auch wenn sie sicher aus meiner Sicht einen Mehrwert darstellt. In einigen Anforderungen soll sie trotzdem nicht präsent sein und so habe ich sie mit Zugriff auf zwei Hooks deaktiviert. Vorerst kann ich keine andere Stelle erkennen, wo man auf sie zugreifen könnte und in meinen Anwendungen klappt es so problemlos.
Der zweite Aufruf des Hook get_search_form
ist eigentlich nur, um die Suche aus dem Frontend zu nehmen, daher sollte man die beiden Hooks nur starten, wenn man nicht im Admin ist: if ( !is_admin() )
.
Setzt man die Variable $error
auf true
, dann wird auf die Fehlerseite des Themes weiter geleitet, wenn nicht, dann bleibt man auf der Seite, von der aus eventuell die Suche gestartet wurde.
function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
// to error
if ( $error == true )
$query->is_404 = true;
}
}
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
Ergänzungen, Kritik oder Verbesserungen – her damit. Das Kommentarfeld steht wie immer offen und die Lösung freut sich, wenn sie verfeinert wird.