X

Suche auf Beitragstitel beschränken

Schnipsel von IsItWP

Suchen Sie nach einer Möglichkeit, Ihre Suchergebnisse auf die Beitragstitel zu beschränken? Obwohl es wahrscheinlich ein Plugin dafür gibt, haben wir einen schnellen Code-Schnipsel erstellt, den Sie verwenden können, um die Suche in WordPress auf Beitragstitel zu beschränken.

Anweisungen:

Sie müssen diesen Code nur zur functions.php-Datei Ihres Themes oder in ein websitespezifisches Plugin einfügen:

function __search_by_title_only( $search, &$wp_query )
{
    global $wpdb;

    if ( empty( $search ) )
        return $search; // skip processing - no search term in query

    $q = $wp_query->query_vars;    
    $n = ! empty( $q['exact'] ) ? '' : '%';

    $search =
    $searchand = '';

    foreach ( (array) $q['search_terms'] as $term ) {
        $term = esc_sql( like_escape( $term ) );
        $search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
        $searchand = ' AND ';
    }

    if ( ! empty( $search ) ) {
        $search = " AND ({$search}) ";
        if ( ! is_user_logged_in() )
            $search .= " AND ($wpdb->posts.post_password = '') ";
    }

    return $search;
}
add_filter( 'posts_search', '__search_by_title_only', 500, 2 );

Hinweis: Wenn Sie zum ersten Mal Code-Schnipsel in WordPress hinzufügen, lesen Sie bitte unseren Leitfaden, wie Sie Code-Schnipsel richtig in WordPress hinzufügen, damit Sie Ihre Website nicht versehentlich beschädigen.

Wenn Ihnen dieser Code-Schnipsel gefallen hat, ziehen Sie bitte in Betracht, unsere anderen Artikel auf der Website zu lesen, wie z. B.: 43 beste Fotografie-Themes für WordPress und 11 beste WordPress-Slider-Plugins.

Kommentare   Hinterlasse eine Antwort

  1. Johanthan Smith 6. Januar 2023 um 16:02 Uhr

    kannst du mir irgendwie helfen... Ich bekomme das mit DIVI THEM nicht zum Laufen

  2. Hallo, danke für diesen Beitrag. Ich habe mich gefragt, ob Sie wissen, wie man den Code anpasst, damit er für einen benutzerdefinierten Beitragstyp funktioniert, insbesondere für WP Job Manager, der Beitragstyp ist: job_listing. Danke.

  3. wie man Leerzeichen bei der Suche ignoriert

    z. B. iPhone 7 32 GB
    und iPhone 7 32GB

    nur mit einem Leerzeichen zwischen 32 und GB ergibt sich ein großer Unterschied bei den Ergebnissen

    wie können wir diese Leerzeichen bei der WordPress-Suche ignorieren, indem wir eine Funktion hinzufügen

    damit wir die gleichen Ergebnisse von beiden Sucharten erhalten

    Bitte um Rat
    Mit freundlichen Grüßen

  4. Ihr Code funktioniert gut lokal, noch nicht live getestet, mein PHP und mein Wissen über WordPress sind nicht so gut. Ich habe versucht,
    $wpdb->postmeta.page_banner_subtitle mit zu durchsuchen, sowie post_title, bisher ohne Erfolg, außerhalb meines Rahmens. Kann jemand helfen oder mir in die richtige Richtung weisen.
    Danke.

  5. ist das für das Frontend oder funktioniert es auch im Backend?

    1. Dies ist für das Frontend.

  6. Funktioniert super! Ausgezeichneter Code-Schnipsel, aber wie würde man die Suche auf Titel von Beiträgen beschränken und nicht auf Titel von Seiten?

    1. Hallo Richard, wir freuen uns, dass es Ihnen gefällt. Der Schnipsel ist speziell für Beitragstitel geschrieben. Sie können sehen, dass er sich auf das Posts CPT bezieht.

  7. Das hat vor einem Monat gut für mich funktioniert.
    Jetzt bekomme ich PHP-Fehler.
    Hast du vielleicht eine aktualisierte Lösung?
    Es ist ein großartiger Code für eine große Website.

    Warnung: Parameter 2 für __search_by_title_only() erwartet eine Referenz, Wert gegeben in /wp-includes/class-wp-hook.php in Zeile 303

    1. Sie könnten versuchen, Zeile 1 zu ändern in:

      function __search_by_title_only( $search, $wp_query )

  8. Warum wird selbst beim Eingeben von Text in das Suchformular nur eine Zeichenbegrenzung von 5 Zeichen angezeigt?

    Wie löse ich das?

  9. Danke, aber es funktioniert 100% mit Chrome usw., aber nicht gut (man erhält nur die Hälfte der erwarteten Ergebnisse) mit I.E. (dem weltweit besten Browser), bizarrerweise!

    1. Es könnte sein, dass I.E. ein zusätzliches Problem hat, da dieser Code auf dem Server und nicht im Browser ausgeführt wird.

  10. Hallo, die türkischen und nicht-türkischen Zeichen werden gleich behandelt. Zum Beispiel, wenn ich nach „aşk“ suche, werden vielleicht ask, aşk angezeigt. Wie kann ich das beheben? Ich möchte nur aşk, wenn ich aşk suche. Danke.

  11. Das ist wirklich nützlich – kann es angepasst werden, um sowohl Post- als auch Seitentitel zu durchsuchen?

  12. Das ist wirklich nett! Danke!

  13. du lich singapur 20. Januar 2014 um 19:51 Uhr

    code: add_filter( ‘posts_search’, ‘__search_by_title_only’, 500, 2 );

    2 Parameter: 500, 2. Was bedeutet das?

    1. 500 ist die Priorität und 2 ist die Anzahl der Parameter in der Callback-Funktion.

  14. du lich singapur 20. Januar 2014 um 19:46

    add_filter( ‘posts_search’, ‘__search_by_title_only’, 500, 2 );
    2 Parameter 500, 2. Was bedeutet das?

  15. Ich verstehe nicht viel von PHP, muss ich etwas vor und nach diesem Code einfügen?

  16. Silver City 30. Juli 2013 um 7:23

    Das ist großartig… Ich frage mich, wie ich diesen Code zum Backend-Suchfeld hinzufügen kann. Ich möchte auch im WP-Backend nach Titeln suchen.. 🙂

    Danke! 🙂

  17. Hallo,
    Das war wirklich großartig.
    Du hast gerade mein Problem mit dem geringsten Aufwand von meiner Seite gelöst.
    Vielen Dank.

  18. disqus_JuU9dzgzNc 18. Januar 2013 um 14:27

    Das ist großartig! Ich habe 2 Suchformulare auf meiner Website. Ist es möglich, diese Funktion nur auf eines der Suchformulare anzuwenden?

  19. Hallo Mister!
    Du bist der Beste, vielen Dank

  20. Web Php 03 7. Mai 2012 um 1:51

    Danke Kevin … genau der Code, nach dem ich gesucht habe …

    1. Kevin Chard 7. Mai 2012 um 13:34

      Cool, freut mich zu hören, dass ich helfen konnte.

  21. Ich bin neu (auch bekannt als „Ich bin schlecht“) in PHP und WordPress.  Soll ich diesen Code einfach irgendwo einfügen oder gibt es einen bestimmten Ort, an dem er hingehört oder an dem er vorhandenen Code ersetzt?

    Ich habe dies am Ende der functions.php-Seite eingefügt und mein Bildschirm war weiß, also habe ich es entfernt.

    1. Ok, ich habe dies in die WordPress functions.php-Datei und nicht in die des Themes eingefügt.  Es funktioniert wie erwartet.

  22. Toller Code! Das bereinigt die WordPress-Suche wirklich.  Gibt es eine Möglichkeit, die ersten X Wörter des Beitrags einzuschließen? Vielleicht mit der substr-Funktion?
    $content = get_the_content();
    $content = strip_tags($content);
    echo substr($content, 0, 50);

    1. In Ihrer Suchergebnisvorlage könnten Sie die Menge des angezeigten Textes kürzen, indem Sie das „excerpt“-Template-Tag für ein kürzeres Ergebnis ohne Hacking verwenden.

  23. Das ist großartig! Etwas, das ich gerne sehen würde, ist eine Suchanpassung, die die Ergebnisse auf Titel und Tags beschränkt. Auf diese Weise habe ich die Freiheit, meine Beiträge so zu benennen, wie ich möchte, ohne mir Sorgen machen zu müssen, Schlüsselwort-Suchbegriffe einzufügen.

    1. Freut mich zu hören, dass Ihnen der Ausschnitt gefällt! Wenn Sie Dinge wie Tags usw. so weit treiben wollen, sollten Sie sich das Plugin „Search Everything“ ansehen. Es hat viele Optionen, die Sie konfigurieren können.

  24. funktioniert nicht! 🙁

    1. Welche Version von WordPress verwenden Sie derzeit? Ich teste alles, um sicherzustellen, dass es funktioniert, bevor ich einen Ausschnitt poste. Ich werde mir das noch einmal ansehen, nur um sicherzugehen.

      1. 3.2.1

        Dies ist die Ausgabe von $search:

        UND ( UND (((wpmtx_posts.post_title LIKE ‘%alice%’) ODER
        (wpmtx_posts.post_content LIKE ‘%alice%’)) UND ((wpmtx_posts.post_title
        LIKE ‘%cooper%’) ODER (wpmtx_posts.post_content LIKE ‘%cooper%’)))
        (.post_title LIKE ‘%alice%’) UND (.post_title LIKE ‘%cooper%’) ODER
        (.post_title LIKE ‘%alice cooper%’))

        1. habe ein kleines Update gemacht, sehen Sie, ob das die Dinge behebt,

        2. Ja! Jetzt funktioniert es! Vielen Dank!!!

      2. 3.2.1

        Dies ist die Ausgabe von $search:

        UND ( UND (((wpmtx_posts.post_title LIKE ‘%alice%’) ODER
        (wpmtx_posts.post_content LIKE ‘%alice%’)) UND ((wpmtx_posts.post_title
        LIKE ‘%cooper%’) ODER (wpmtx_posts.post_content LIKE ‘%cooper%’)))
        (.post_title LIKE ‘%alice%’) UND (.post_title LIKE ‘%cooper%’) ODER
        (.post_title LIKE ‘%alice cooper%’))

  25. 29 WordPress-Tweaks zur Verbesserung von Beiträgen und Seiten 18. Oktober 2011, 09:11 Uhr

    [...] [Quelle: WPSNIPP] [...]

Kommentar hinzufügen

Wir freuen uns, dass Sie einen Kommentar hinterlassen haben. Bitte beachten Sie, dass alle Kommentare gemäß unserer Datenschutzrichtlinie moderiert werden und alle Links nofollow sind. Verwenden Sie KEINE Schlüsselwörter im Namensfeld. Lassen Sie uns ein persönliches und bedeutungsvolles Gespräch führen.

WordPress Launch Checkliste

Die ultimative Checkliste für den Start von WordPress

Wir haben alle wichtigen Checklistenpunkte für den Start Ihrer nächsten WordPress-Website in einem praktischen E-Book zusammengefasst.
Ja, senden Sie mir das kostenlose E-Book!