SearchWP Blog

WordPress-Tutorials, Tipps und Ressourcen, die Ihnen helfen, Ihr Geschäft auszubauen

Benutzerdefinierte Suche in WordPress ohne Plugin erstellen

Möchten Sie wissen, wie Sie eine benutzerdefinierte Suche in WordPress ohne Plugin erstellen können?

Durch die Anpassung der Suche auf Ihrer Website können Sie die Anzahl der Seitenaufrufe erhöhen, Ihren Umsatz steigern und Ihren Besuchern helfen, schneller zu finden, wonach sie gesucht haben.

In diesem Artikel erfahren Sie, wie Sie die Suche auf Ihrer Website anpassen können, ohne ein Plugin zu installieren, und warum Sie dennoch die Verwendung eines Plugins in Betracht ziehen sollten.

Legen wir los!

Warum ist benutzerdefinierte Suche für Ihre WordPress-Website wichtig?

Um zu beginnen, sprechen wir darüber, wie eine benutzerdefinierte Suche auf Ihrer Website Ihnen helfen kann, Ihr Geschäft auszubauen.

Die Anpassung der Suche auf Ihrer Website ermöglicht es Ihnen:

  • Liefern Sie relevantere Suchergebnisse. Beschränken Sie Ihre Suche auf bestimmte Kategorien, um Ihre Suchergebnisse einzugrenzen und Besuchern zu helfen, schneller zu finden, wonach sie suchen.
  • Erzielen Sie mehr Seitenaufrufe und Verkäufe. Steigern Sie die Auffindbarkeit Ihrer Inhalte und erhöhen Sie Ihr Einkommen, indem Sie bestimmte Beiträge oder Produkte in Ihren Suchergebnissen bewerben.
  • Bauen Sie ein loyales Publikum auf. Besucher, die eine positive Sucherfahrung auf Ihrer Website hatten, kehren eher wieder zurück, um mehr Ihrer Inhalte zu erkunden.
  • Generieren Sie mehr Traffic von Suchmaschinen. Indem Sie Besuchern helfen, schnell die richtigen Inhalte zu finden, binden Sie sie länger auf Ihrer Website, was einer der Haupt-Rankingfaktoren bei Google ist.

Nachdem wir herausgefunden haben, welche Vorteile eine benutzerdefinierte Suche für Ihr Unternehmen bringen kann, sprechen wir über die Nachteile, die Sie erwarten können, wenn Sie dies ohne ein Plugin tun.

Nachteile der Erstellung einer benutzerdefinierten Suche ohne Plugin

Sie sollten einige wichtige Nachteile berücksichtigen, wenn Sie eine benutzerdefinierte Suche auf Ihrer Website ohne Plugin erstellen möchten.

1. Es erfordert Programmierkenntnisse und tiefes WordPress-Wissen

Der Hauptnachteil der manuellen Anpassung der Website-Suche ist, dass sie umfangreiche Programmiererfahrung und tiefes Wissen über WordPress erfordert.

Tatsache ist, dass es in WordPress keine standardmäßigen Werkzeuge zur Suchkonfiguration gibt.

Daher ist der einzige Weg, Ihre Suche anzupassen, die Modifizierung der WordPress-Core-Dateien und des Codes Ihres Themes.

Es ist unbequem, zeitaufwendig und ungeeignet für technisch nicht versierte Personen.

Darüber hinaus kann es, wenn Sie etwas falsch machen, zum Absturz Ihrer Website führen. Seien Sie also sehr vorsichtig, wenn Sie Ihre Theme-Dateien anpassen.

2. Sie haben weniger Funktionen

Außerdem ist die Anzahl der benutzerdefinierten Suchfunktionen, die Sie ohne Plugin hinzufügen können, begrenzt, selbst wenn Sie über umfangreiche Programmierkenntnisse verfügen.

Sie können beispielsweise keine mehreren Suchmaschinen mit einem einzigartigen Regelsatz hinzufügen, bestimmte Seiten oder Kategorien von der Suche ausschließen, die Reihenfolge Ihrer Suchergebnisse verwalten und vieles mehr.

Wenn es Ihnen also entscheidend ist, die volle Kontrolle darüber zu haben, wie die Suche auf Ihrer Website funktioniert, sollten Sie die Verwendung eines leistungsstarken WordPress-Such-Plugins in Betracht ziehen.

3. Sie können Ihre Änderungen verlieren

Da die Anpassung der Suche ohne Plugin die Bearbeitung Ihrer Website-Dateien erfordert, verlieren Sie schließlich alle vorgenommenen Änderungen, wenn Sie Ihr Theme oder Ihre WordPress-Version aktualisieren.

Der beste Weg, solche Situationen zu vermeiden, ist die Verwendung eines WordPress-Suchplugins, da es Ihre Einstellungen beibehält, egal was Sie mit Ihrer Website tun.

Damit wollen wir uns ansehen, wie Sie die Suche auf Ihrer Website mit wenigen Klicks anpassen können, ohne dass Programmierkenntnisse erforderlich sind und unabhängig von Ihren technischen Fähigkeiten.

Die einfachste Methode zur Anpassung der WordPress-Suche auf Ihrer Website

Der einfachste Weg, eine Suche auf Ihrer WordPress-Website anzupassen, ist die Verwendung eines Plugins wie SearchWP.

SearchWP

SearchWP ist das am besten bewertete WordPress-Suchplugin, dem über 50.000 Website-Besitzer vertrauen.

Seine anfängerfreundliche Oberfläche und leistungsstarken Funktionen ermöglichen es Ihnen, Ihre Suche vollständig anzupassen, auch wenn Sie Ihre erste Website starten.

Mit SearchWP können Sie beispielsweise verwalten, wo WordPress nach Übereinstimmungen suchen soll, die Suche auf einen bestimmten Inhaltstyp beschränken, die Suche nach Tags und benutzerdefinierten Feldern aktivieren und vieles mehr.

Das Beste daran ist, dass Sie die meisten dieser Dinge mit nur wenigen Klicks erledigen können.

Sie können SearchWP auch verwenden, um:

Nachdem Sie erfahren haben, warum SearchWP das beste WordPress-Suchplugin ist, sehen wir uns an, wie Sie es verwenden können, um die Suche auf Ihrer Website an Ihre Bedürfnisse anzupassen.

Schritt 1: SearchWP installieren und aktivieren

Der erste Schritt ist, die SearchWP-Website zu besuchen und Ihre Kopie von SearchWP zu erhalten.

Sobald Sie fertig sind, gehen Sie einfach zu Ihrem SearchWP-Konto-Dashboard und klicken Sie auf Downloads.

Laden Sie das SearchWP-Plugin aus dem Kontobereich herunter

Dann können Sie auf die Schaltfläche SearchWP herunterladen klicken und das Plugin auf Ihrem Computer speichern.

Nach dem Download empfehlen wir außerdem, Ihren SearchWP-Lizenzschlüssel unten links zu kopieren.

Als Nächstes müssen Sie SearchWP auf Ihrer Website installieren. Wenn Sie Hilfe benötigen, können Sie unserer detaillierten Anleitung zum Installieren eines WordPress-Plugins folgen.

Danach sehen Sie den SearchWP-Begrüßungsbildschirm und den Einrichtungsassistenten. Klicken Sie auf die Schaltfläche „Onboarding-Assistent starten“ und folgen Sie den Anweisungen auf dem Bildschirm.

Onboarding-Assistent SearchWP

Schritt 2: Beginnen Sie mit der Anpassung Ihrer Suche

Als Nächstes können Sie Suchmaschinen in SearchWP hinzufügen, entfernen und anpassen. Betrachten Sie sie als eine Reihe von Regeln, die bei der Durchführung einer Suche auf Ihrer Website befolgt werden.

Durch die Anpassung der Engine können Sie die Liste Ihrer Suchquellen verwalten, neue Inhaltsattribute berücksichtigen, die Suche auf bestimmte Kategorien beschränken und mehr.

Mit SearchWP können Sie eine unbegrenzte Anzahl von Suchmaschinen hinzufügen und diese mit einzelnen Suchformularen auf Ihrer Website verbinden.

Dank dessen können Sie schnell benutzerdefinierte Suchformulare für verschiedene Geschäftsanforderungen erstellen und sie überall auf Ihrer Website platzieren.

Da wir in diesem Tutorial anpassen möchten, wie die Suche auf der gesamten Website funktioniert, bearbeiten wir die Standard-Suchmaschine.

Legen wir zunächst fest, wo WordPress nach Inhalten suchen soll, indem wir seine Liste der Suchquellen konfigurieren.

Verwalten Sie Ihre Suchquellen

Um zu beginnen, gehen Sie von Ihrem WordPress-Dashboard zu SearchWP » Algorithmus .

Von hier aus können Sie die Schaltfläche Quellen & Einstellungen drücken.

Suchmaschinen in WordPress bearbeiten oder neue hinzufügen

Hier können Sie verwalten, welche Quellen in den Suchprozess einbezogen werden sollen.

Standardmäßig durchsucht es Beiträge, Seiten und Mediendateien.

Suchquellen auswählen

Um eine Suchquelle zu entfernen, können Sie ein Kontrollkästchen daneben deaktivieren. Begrenzen wir beispielsweise die Suche auf unserer Website nur auf Beiträge.

Dazu deaktivieren wir alle anderen Quellen außer Beiträge und klicken dann auf Fertig, um die Änderungen zu speichern.

Beiträge als einzige Quelle auswählen

Sobald wir unsere Liste der Suchquellen eingerichtet haben, verbessern wir auch unsere Suche, indem wir WordPress dazu bringen, Beitragsattribute und Taxonomien zu berücksichtigen.

Konfigurieren Sie Ihre Suchattribute

Um zu beginnen, können Sie im Abschnitt der Suchquelle Beiträge auf die Schaltfläche Attribute hinzufügen/entfernen klicken.

Attribut für Beitrag hinzufügen

Im nächsten Fenster können Sie Attribute wie benutzerdefinierte Felder und Taxonomien angeben, die SearchWP bei der Suche berücksichtigen soll.

Standardmäßig werden Titel, Inhalt, Slug, Auszug und Autor als Attribute einbezogen.

Beitragsattribute

Um ein bestimmtes benutzerdefiniertes Feld durchsuchbar zu machen, können Sie auf das Feld Benutzerdefinierte Felder klicken und dessen Namen eingeben.

Ebenso können Sie Taxonomien wie Schlagwörter und Kategorien für die Quelle einbeziehen.

Um eine neue Taxonomie durchsuchbar zu machen, klicken Sie auf das Feld Taxonomien und wählen Sie die gewünschte Taxonomie aus.

Nehmen wir zum Beispiel an, wir möchten, dass WordPress Beitrags-Schlagwörter bei der Suche berücksichtigt. Tun Sie dies, indem Sie die Option Schlagwörter aus dem Dropdown-Menü auswählen.

Beitrag-Tags auswählen

Nachdem Sie die Attribute der Beitragsquelle verwaltet haben, drücken Sie Fertig, um die Änderungen zu speichern.

Lassen Sie uns nun sehen, wie Sie Ihre Suche eingrenzen können, um Ihren Besuchern relevantere Ergebnisse zu liefern.

Suche auf eine bestimmte Beitrags-Kategorie beschränken

Um zu beginnen, drücken Sie die Schaltfläche Regeln bearbeiten für Ihre Quelle.

Regeln für Suchergebnisse bearbeiten

Ein neues Fenster wird nun angezeigt.

Klicken Sie einfach auf die Schaltfläche Regel hinzufügen.

Neue Suchregel hinzufügen

Hier können Sie Regeln hinzufügen, nach denen WordPress Inhalte in den Suchergebnissen filtert.

Zum Beispiel können Sie eine Regel hinzufügen, um bestimmte Kategorien von Ihrer Suche auszuschließen oder Ihre Suche darauf zu beschränken.

Nehmen wir an, wir möchten die Suche auf unserer Testseite auf die Kategorie Nachrichten beschränken.

Um dies zu tun, stellen Sie zunächst sicher, dass Sie die Option Einträge ausschließen, wenn: wählen und dann die Taxonomie Kategorien auswählen.

Von hier aus können Sie dann den Namen einer Kategorie in das rechteste Feld eingeben, auf die Sie Ihre Suche beschränken möchten. In unserem Fall wird es Nachrichten sein.

Ausschlussregeln einrichten

Nachdem Sie die Regeln Ihrer Suchmaschine angepasst haben, klicken Sie auf Fertig, um Ihre Änderungen zu speichern.

Wenn Sie mit der Anpassung Ihrer Suche zufrieden sind, können Sie mit dem letzten Schritt fortfahren und Ihre Suchmaschine speichern.

Speichern Sie Ihre Suchmaschine

Um dies zu tun, drücken Sie die Schaltfläche Speichern in der oberen rechten Ecke Ihres SearchWP-Dashboards.

Enginge-Einstellungen speichern

Das ist alles. Sie haben die Suche vollständig an Ihre Bedürfnisse angepasst, ohne eine einzige Zeile Code zu schreiben.

Testen wir Ihre neue Suche, um sicherzustellen, dass sie gemäß Ihren Anpassungen funktioniert.

Schritt 3: Testen Sie Ihre neue Suche

Um zu beginnen, gehen Sie zu Ihrer Website und führen Sie eine Testsuchanfrage durch.

Da wir beispielsweise Beitrag-Tags durchsuchbar gemacht haben, versuchen wir, einen Beitrag nur nach seinen Tags zu finden.

Auf unserer Testseite haben wir einen Beitrag namens „Neue WordPress-Funktionen“, der den Tag „Updates“ hat.

Suchen wir nach diesem Tag und sehen wir, ob wir unseren Beitrag finden können.

Klicken Sie auf Ergebnisse finden

Wir haben den Beitrag gefunden, obwohl kein Wort „Updates“ in seinem Titel, Auszug oder Inhalt vorkommt.

Das bedeutet, dass unsere Suchmaschine jetzt Beitrag-Tags bei der Suche nach Übereinstimmungen berücksichtigt.

wir haben den Beitrag gefunden

Stellen wir auch sicher, dass die Suche auf unserer Website jetzt auf die Kategorie „Nachrichten“ beschränkt ist.

Dazu suchen wir nach „WordPress“, da wir viele Beiträge im Zusammenhang mit WordPress in anderen Kategorien haben.

weitere Suche durchführen

Sie können sehen, dass nur Beiträge aus der Kategorie Nachrichten in den von uns erhaltenen Suchergebnissen angezeigt werden.

Das bedeutet, dass die Regel, die wir zu unserer Suchmaschine hinzugefügt haben und die besagt, dass WordPress nur in den Nachrichten suchen soll, wie vorgesehen funktioniert.

wir haben die richtigen Beiträge gefunden

Sie haben also gerade den einfachsten Weg kennengelernt, Ihre Suche anzupassen. Lassen Sie uns nun sehen, wie Sie dies ohne ein Plugin tun können.

Benutzerdefinierte Suche in WordPress ohne Plugin erstellen

Um Ihre Suche ohne Plugin anzupassen, müssen Sie Änderungen an Ihrem Theme vornehmen.

Der sicherste Weg, dies zu tun, ist die Erstellung eines Child-Themes des aktuellen Themes, das Sie auf Ihrer Website verwenden.

Auf diese Weise bleibt Ihr Parent-Theme unberührt, wenn Sie Änderungen an einem Child-Theme vornehmen, sodass Sie bei kritischen Fehlern schnell zu ihm wechseln können.

Außerdem können Sie mit einem Child-Theme Ihr Parent-Theme aktualisieren, ohne Ihre Änderungen zu verlieren. Weitere Details zur Erstellung eines Child-Themes finden Sie in diesem Tutorial zur Erstellung eines Child-Themes.

Profi-Tipp: Sie können auch ein WordPress-Backup-Plugin verwenden, um sicherzustellen, dass Sie eine frische Kopie Ihrer Website zur Wiederherstellung bereit haben, falls etwas schiefgeht.

Nachdem Sie ein Child-Theme erstellt und aktiviert haben, können Sie mit der Anpassung Ihrer Suche beginnen.

Navigieren Sie dazu in Ihrem WordPress-Dashboard zu Darstellung » Theme-Dateien-Editor. Suchen Sie dann im rechten Bereich die Datei functions.php und klicken Sie darauf.

Wenn Sie sich nicht wohl dabei fühlen, die Theme-Dateien zu bearbeiten, empfehlen wir die Verwendung von WPCode. Es hilft Ihnen, benutzerdefinierten Code auf Ihrer Website einzufügen, ohne etwas zu beschädigen. Sie können diese Anleitung durchgehen, wie Sie Code-Snippets aus dem Web in WordPress kopieren und einfügen.

functions.php-Datei öffnen

Befolgen Sie anschließend die nachstehenden Anweisungen, je nachdem, welche Anpassungen Sie an der Suche auf Ihrer Website vornehmen möchten.

Beiträge nach Tags und Kategorien durchsuchen aktivieren

Damit Beitrag-Tags und Kategorien auf Ihrer Website ohne Plugin durchsuchbar sind, müssen Sie den folgenden Code zur functions.php-Datei Ihres Themes hinzufügen.

<pre class="wp-block-syntaxhighlighter-code">
/*
 * ----------------------------------------------------------
 *
 * Search Posts by Tags and Categories
 *
 * ----------------------------------------------------------
 */

/**
 * Join the terms, term_relationship, and term_taxonomy tables.
 *
 * @global $wpdb
 *
 * @param string $join  The JOIN clause.
 * @param object $query The current WP_Query instance.
 *
 * @return string The JOIN clause.
 */
function search_custom_posts_join( $join, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $join;
	}

	$join .= &amp;amp;amp;quot;
    LEFT JOIN
    (
        {$wpdb-&amp;amp;amp;gt;term_relationships}
        INNER JOIN
            {$wpdb-&amp;amp;amp;gt;term_taxonomy} ON {$wpdb-&amp;amp;amp;gt;term_taxonomy}.term_taxonomy_id = {$wpdb-&amp;amp;amp;gt;term_relationships}.term_taxonomy_id
        INNER JOIN
            {$wpdb-&amp;amp;amp;gt;terms} ON {$wpdb-&amp;amp;amp;gt;terms}.term_id = {$wpdb-&amp;amp;amp;gt;term_taxonomy}.term_id
    )
    ON {$wpdb-&amp;amp;amp;gt;posts}.ID = {$wpdb-&amp;amp;amp;gt;term_relationships}.object_id &amp;amp;amp;quot;;

	return $join;
}

add_filter( 'posts_join', 'search_custom_posts_join', 10, 2 );

/**
 * Modify the WHERE clause to include searches against taxonomies.
 *
 * @global $wpdb
 *
 * @param string   $where The WHERE clause.
 * @param WP_Query $query The current WP_Query instance.
 *
 * @return string The WHERE clause.
 */
function search_custom_posts_where( $where, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $where;
	}

	// Get additional where clause for the user.
	$user_where = '';

	$user_id = get_current_user_id();
	$status  = array( &amp;amp;amp;quot;'publish'&amp;amp;amp;quot; );

	// Include private posts if the user is logged in.
	if ( $user_id ) {
		$status&#x5B;]    = &amp;amp;amp;quot;'private'&amp;amp;amp;quot;;
		$user_where .= &amp;amp;amp;quot; AND {$wpdb-&amp;amp;amp;gt;posts}.post_author = {$user_id}&amp;amp;amp;quot;;
	}

	$user_where .= &amp;amp;amp;quot; AND {$wpdb-&amp;amp;amp;gt;posts}.post_status IN( &amp;amp;amp;quot; . implode( ',', $status ) . &amp;amp;amp;quot; ) &amp;amp;amp;quot;;

	$where .= &amp;amp;amp;quot; OR (
                    {$wpdb-&amp;amp;amp;gt;term_taxonomy}.taxonomy IN( 'category', 'post_tag' )
                    AND
                    {$wpdb-&amp;amp;amp;gt;terms}.name LIKE '%&amp;amp;amp;quot; . esc_sql( get_query_var( 's' ) ) . &amp;amp;amp;quot;%'
                    {$user_where}
                )&amp;amp;amp;quot;;

	return $where;
}

add_filter( 'posts_where', 'search_custom_posts_where', 10, 2 );

/**
 * Set the GROUP BY clause to post IDs.
 *
 * @global $wpdb
 *
 * @param string   $groupby The GROUPBY clause.
 * @param WP_Query $query   The current WP_Query instance.
 *
 * @return string The GROUPBY clause.
 */
function search_custom_posts_groupby( $groupby, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $groupby;
	}

	return &amp;amp;amp;quot;{$wpdb-&amp;amp;amp;gt;posts}.ID&amp;amp;amp;quot;;
}

add_filter( 'posts_groupby', 'search_custom_posts_groupby', 10, 2 );
</pre>




Wenn Sie fertig sind, drücken Sie die Schaltfläche Datei aktualisieren, um Ihre Änderungen zu speichern.

Fertig drücken

Jetzt können Ihre Website-Besucher nach Beiträgen nach Tags und Kategorien suchen.

Suche nach Kommentarinhalt und Autorennamen aktivieren

Damit Kommentare und Autorennamen auf Ihrer Website ohne Plugin durchsuchbar sind, fügen Sie den folgenden Code zur functions.php-Datei Ihres Themes hinzu:

/*
 * ----------------------------------------------------------
 *
 * Search by Comment Content and Author Names
 *
 * ----------------------------------------------------------
 */

/**
 * Joins the comments and posts tables.
 *
 * @global $wpdb
 *
 * @param string $join  The JOIN clause.
 * @param object $query The current WP_Query instance.
 *
 * @return string The JOIN clause.
 */
function search_custom_comments_posts_join( $join, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $join;
	}

	$join .= ' LEFT JOIN ' . $wpdb-&amp;amp;amp;gt;comments . ' ON ' . $wpdb-&amp;amp;amp;gt;posts . '.ID = ' . $wpdb-&amp;amp;amp;gt;comments . '.comment_post_ID ';

	return $join;
}

add_filter( 'posts_join', 'search_custom_comments_posts_join', 10, 2 );

/**
 * Modify the WHERE clause to include searches against comments.
 *
 * @global $wpdb
 *
 * @param string   $where The WHERE clause.
 * @param WP_Query $query The current WP_Query instance.
 *
 * @return string The WHERE clause.
 */
function search_custom_comments_posts_where( $where, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $where;
	}

	$where = preg_replace(
		&amp;amp;amp;quot;/\(\s*&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;posts . &amp;amp;amp;quot;.post_title\s+LIKE\s*(\'[^\']+\')\s*\)/&amp;amp;amp;quot;,
		&amp;amp;amp;quot;(&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;posts . &amp;amp;amp;quot;.post_title LIKE $1) OR (&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;comments . &amp;amp;amp;quot;.comment_author LIKE $1) OR (&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;comments . &amp;amp;amp;quot;.comment_content LIKE $1)&amp;amp;amp;quot;,
		$where
	);

	return $where;
}

add_filter( 'posts_where', 'search_custom_comments_posts_where', 10, 2 );

/**
 * Prevent search results duplicates.
 *
 * @param string   $distinct The DISTINCT clause.
 * @param WP_Query $query    The current WP_Query instance.
 *
 * @return string The DISTINCT clause.
 */
function search_custom_comments_posts_distinct( $distinct, $query ) {

	if ( ! is_main_query() || ! is_search() ) {
		return $distinct;
	}

	return 'DISTINCT';
}

add_filter( 'posts_distinct', 'search_custom_comments_posts_distinct', 10, 2 );

Wenn Sie fertig sind, klicken Sie unten im Editor auf die Schaltfläche Datei aktualisieren, um Ihre Änderungen zu speichern.

Fertig

Jetzt können Ihre Besucher nach Kommentarinhalt und Autorennamen suchen.

Suche nach benutzerdefinierten Beitragsfeldern aktivieren

Damit benutzerdefinierte Felder auf Ihrer Website ohne Plugin durchsuchbar sind, fügen Sie den folgenden Code zur functions.php-Datei Ihres Themes hinzu:

<pre class="wp-block-syntaxhighlighter-code">
/*
 * ----------------------------------------------------------
 *
 * Search by Post Custom Fields
 *
 * ----------------------------------------------------------
 */

/**
 * Joins the postmeta and posts tables.
 *
 * @global $wpdb
 *
 * @param string $join  The JOIN clause.
 * @param object $query The current WP_Query instance.
 *
 * @return string The JOIN clause.
 */
function search_custom_meta_posts_join( $join, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $join;
	}

	$join .=' LEFT JOIN '.$wpdb-&amp;amp;amp;gt;postmeta. ' ON '. $wpdb-&amp;amp;amp;gt;posts . '.ID = ' . $wpdb-&amp;amp;amp;gt;postmeta . '.post_id ';

	return $join;
}

add_filter( 'posts_join', 'search_custom_meta_posts_join', 10, 2 );

/**
 * Modify the WHERE clause to include searches against postmeta.
 *
 * @global $wpdb
 *
 * @param string   $where The WHERE clause.
 * @param WP_Query $query The current WP_Query instance.
 *
 * @return string The WHERE clause.
 */
function search_custom_meta_posts_where( $where ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $where;
	}

	$where = preg_replace(
		&amp;amp;amp;quot;/\(\s*&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;posts . &amp;amp;amp;quot;.post_title\s+LIKE\s*(\'&#x5B;^\']+\')\s*\)/&amp;amp;amp;quot;,
		&amp;amp;amp;quot;(&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;posts . &amp;amp;amp;quot;.post_title LIKE $1) OR (&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;postmeta . &amp;amp;amp;quot;.meta_value LIKE $1)&amp;amp;amp;quot;, $where );

	return $where;
}

add_filter( 'posts_where', 'search_custom_meta_posts_where', 10, 2 );

/**
 * Prevent search results duplicates.
 *
 * @param string   $distinct The DISTINCT clause.
 * @param WP_Query $query    The current WP_Query instance.
 *
 * @return string The DISTINCT clause.
 */
function search_custom_meta_posts_distinct( $distinct, $query ) {

	if ( ! is_main_query() || ! is_search() ) {
		return $distinct;
	}

	return 'DISTINCT';
}

add_filter( 'posts_distinct', 'search_custom_meta_posts_distinct', 10, 2 );
</pre>




Sobald Sie fertig sind, drücken Sie unten im Editor auf die Schaltfläche Datei aktualisieren, um Ihre Änderungen zu speichern.

Fertig drücken

Jetzt können Ihre Besucher nach Beiträgen nach benutzerdefinierten Feldern suchen.

Wir hoffen, dieser Artikel hat Ihnen geholfen zu lernen, wie Sie eine benutzerdefinierte Suche auf Ihrer Website ohne Plugin erstellen können. Möglicherweise möchten Sie auch unseren Leitfaden zum Erstellen eines benutzerdefinierten WordPress-Themes und zum Anpassen Ihrer WordPress-Suchergebnisseite lesen.

Bereit, die Suche auf Ihrer Website mit wenigen Klicks anzupassen? Sie können hier mit SearchWP beginnen.

Autor-Avatar
Aazim Akhtar

Erstellen Sie noch heute eine bessere WordPress-Sucherfahrung

Verlieren Sie nie wieder Besucher an unzureichende Suchergebnisse. SearchWP macht die Erstellung Ihrer eigenen intelligenten WordPress-Suche schnell und einfach.

Get SearchWP Now
Symbol für mehrere Suchmaschinen