Sidebar
ein-/ausblenden

WordPress Suche deaktivieren

Plugin für WordPress SEO

Anzeige

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.

22 Kommentare zu „WordPress Suche deaktivieren“

  1. 1
    Kommentar von ^Nicki^

    Super, passt, danke!

  2. 2
    Kommentar von Tobias

    Hatte mich immer schon gefragt, wie man das machen könnte. Das Suchformular rausnehmen ist eine Sache, aber es richtig zu deaktivieren eine andere.

  3. 3
    Kommentar von Jared

    Hallo Frank,

    super Tip ;) mehr muss man dazu nicht sagen!

  4. 4
    Kommentar von FuNKeR

    Das klingt praktisch für die Gästehaus-Seite, die ich betreue. Das ist eine recht statische Seite, wo eigentlich nie neue Inhalte kommen und die auch nur ~ fünf Seiten umfasst. Da ist eine Suche nicht ganz so sinnvoll.

    Wenn ich damit die Ladezeit evtl. ein wenig herabsetzen kann, kommt mir das natürlich sehr zu gute.

    Hast du sonst noch eine Idee, was man deaktivieren kann, wenn man WP als Mini-CMS und nur mit Pages nutzt? Mir fielen da z.B. RSS-Feeds ein. Diese hab ich einfach aus dem Header genommen, damit sie nicht mehr angezeigt werden. Erstellt werden sie dadurch aber trotzdem noch, oder?

    Und kann man Plugins nur auf bestimmten Seiten laden lassen ohne das Plugin selbst zu verändern? Google Maps muss beispielsweise nur auf einer der Seiten geladen werden.

  5. 5
    Kommentar von FuNKeR

    Sorry, hab grade einen Beitrag gefunden, wo du genau das mit den RSS-Feeds erklärst. Danke dafür.

  6. 6
    Kommentar von Ahmet Topal

    Find ich auch, dass kann für manche Seiten (Portfolio ohne Blog) interessant sein, finde es super...

  7. 7
    Kommentar von Claudia

    Warum nicht einfach das Suchfeld aus der Oberfläche (den Templates) raus nehmen??

  8. 8
    Kommentar von Frank Bültge

    @Claudia: weil die Suche dann trotzdem aktiv ist und genutzt werden kann, so zum Beispiel durch Google und Nutzer, die das System kennen.

  9. 9
    Kommentar von Brasilien

    PERFEKT!!! Danke

  10. 10
    Kommentar von Frederik

    @FuNKeR: Wenn damit die Ladezeit effektiv verringert wird: Super! Ansonsten ist es doch nicht nötig, oder?

    @Frank: Inwiefern nutzt denn zum Beispiel Google die in WordPress integrierte Suche? Davon have ich noch nie gehört. Klingt jedoch interessant, hast du dafür weitere Infos?

  11. 11
    Kommentar von Frank Bültge

    @Frederik: WordPress nutzt Google nicht innerhalb des Systems, man kann es aber selber in das Blog integrieren, siehe Artikel.

  12. 12
    Kommentar von andre

    Danke, sowas hab ich gesucht :-)

  13. 13
    Kommentar von Matthias Essen

    Danke für die Anleitung. Ich habs gerade für meine Seite umgesetzt. Bei Google Analytics hatte ich gesehen, dass dort auch ohne Suchfeld auf die Suche zugegriffen wurde und auch für Crawler wollte ich den Zugang sperren, damit die nicht irgendetwas ungewollt indizieren.

  14. 14
    Kommentar von stefan

    Hallo ich hatte die tage schon mal die frage gestellt wo genau ich das eintragen soll? so wie das da steht bringt das nichts

  15. 15
    Kommentar von Frank Bültge

    @stefan: gehört in ein Plugin oder die functions.php des aktiven Themes.

  16. 16
    Kommentar von stefan

    ok super vielen dank geht und endlich ist die suche aus..

  17. 17
    Kommentar von Marina

    Hi, danke für die ausführliche Anleitung! :-)

  18. 18
    Kommentar von Julian Meier

    Habe ein kleines Problem...
    ich bin leider ein richtiger Neuling in Sachen WordPress :-)

    Ich habe mir den Artikel einmal komplett durchgelesen, bin aber zu keiner Lösung gekommen :(

    Ich habe hier nun einmal den Code meines Headers (dort befindet sich das Suchfeld) und der Functions-Datei eingebunden...

    Ich wäre über Eure Hilfe Sehr erfreut!!!

    Viele Grüße

    header.php

    <a href="">
    at <a href=""> Search for posts

    <form method="get" id="searchform" action="/">
    Find results for <input type="text" value="" name="s" id="s" />
    at <a href=""> Cancel search

    Posts Tagged ''
    at <a href=""> Search for posts

    <form method="get" id="searchform" action="/">
    Find results for <input type="text" value="" name="s" id="s" />
    at <a href=""> Cancel search

    <form method="get" id="searchform" action="/" style="display:block;">
    Results for <input type="text" value="" name="s" id="s" />
    at <a href="">

    <a href="">
    <a href=""> Search for posts

    <a href="">
    Search for posts

    <form method="get" id="searchform" action="/">
    Find results for <input type="text" value="" name="s" id="s" />
    at <a href=""> Cancel search

    functions.php


    '',
    'after_widget' => '',
    'before_title' => '',
    'after_title' => '',
    ));
    }

    function dd_get_page_link_by_slug($page_slug) {
    $page = get_page_by_path($page_slug);
    if ($page) :
    return get_permalink( $page->ID );
    else :
    $page = get_page_by_path($page_slug.'s');
    if ($page) :
    return get_permalink( $page->ID );
    else :
    return "#";
    endif;
    endif;
    }

    function dd_comment_link() {
    global $post;
    if($post->comment_count==0){
    $o = "";
    $o .= $post->comment_count;
    $o .= " comments
    ";
    } else if($post->comment_count==1){
    $o = "";
    $o .= $post->comment_count;
    $o .= " comment
    ";
    } else {
    $o = "";
    $o .= $post->comment_count;
    $o .= " comments
    ";
    }
    echo $o;
    }

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

    ?>

  19. 19
    Kommentar von Frank Bültge

    @Julian: du musst den Code aus dem Tutorial bspw. in die functions.php des Themes legen, nicht in ein Template für die Ausgabe.

  20. 20
    Kommentar von Eckhard

    hallo zusammen,

    ich habe versucht, die function in functions.php von dem std. theme twenty eleven zu packen, aber das klappt nicht. das suchfeld ist immer noch da.
    ich hab leider nicht so viel ahnung von solchen codes und wollte fragen, an welche stelle ich die function genau packen muss?

    bitte helft mir! :-)

    gruß,
    eckhard

  21. 21
    Kommentar von Frank Bültge

    @Eckhard: Die Suchfunktion sollte dann weg sein, die optische Suche ist natürlich noch da; dazu musst du ins Theme eingreifen oder via CSS ausblenden.

  22. 22
    Kommentar von caki

    Hallo an alle. dies ist mein erster Forum Eintrag.
    mein Problem ist das ich auf wp das plugin qTranslate installiert habe und wenn ich nun auf die Suche was eingebe findet er nur was unter der Hauptsprache.

    Bsp. die Seite ist zweisprachig de und en. Hauptsprache ist en.
    wenn ich nun auf de klicke und da was in die suche eingebe kommt eine Meldung "Keine Seite gefunden. Etwas anderes Suchen?" obwohl dieser Begriff in dieser Sprache vorhanden ist. kann mir da bitte einer weiter helfen?

Kommentar schreiben

Kommentarregeln: Bleib cool, kritisch ist in Ordnung, aber wenn du unhöflich bist, dann lösche ich deinen Kommentar. Bitte benutze deinen persönlichen Namen oder Initialen und nicht den Namen eines Unternehmens, dies würde als Spam gewertet und wird gelöscht. Der Zusammenhang zwischen Namen und URL sollte nicht offensichtlich auf Spam hindeuten! ♥ Ansonsten, vielen Dank für den Kommentar und viel Spaß mit meinem Blog.

E-Mail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

Kommentar-Hilfe

händischer Spam:
Beachte die Kommentarregeln, jede Form von versuchtem Spam wird gelöscht. Warum und wieso steht in einem meiner Beiträge.

Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.

xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>

Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als &lt; und > als &gt; einfügt.

E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.

Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.

Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.

Spamschutz:
Das Kommentarformular ist mit einem Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.