Ich nutze WordPress Internetseiten, auf denen ich bei der Suche nur Beiträge anzeigen lassen möchte und keine Seiten, wie zum Beispiel ein Impressum oder die Datenschutzerklärung! Eine Zeitlang hatte ich da ein Plugin im Einsatz, jedoch zu viele Plugins machen deine Internetseite langsam!
Daher einfach nur ein simpler WordPress Code, den ich in die functions.php kopiere und schon werden in der Suche nur noch Beiträge und keine Seiten mehr angezeigt!
//Filter Suche nur post und keine page zulassen array('post','page')
function searchfilter($query) {
if ($query->is_search && !is_admin() ) {
$query->set('post_type',array('post'));
}
return $query;
}
add_filter('pre_get_posts','searchfilter');
Willst du die Beiträge und Seiten anzeigen lassen musst du diesen Code nutz!
//Filter Suche nur post und keine page zulassen array('post','page')
function searchfilter($query) {
if ($query->is_search && !is_admin() ) {
$query->set('post_type',array('post','page'));
}
return $query;
}
add_filter('pre_get_posts','searchfilter');
Willst du nur die Seiten und keine Beiträge anzeigen lassen musst du diesen Code nutz!
//Filter Suche nur post und keine page zulassen array('post','page')
function searchfilter($query) {
if ($query->is_search && !is_admin() ) {
$query->set('post_type',array('page'));
}
return $query;
}
add_filter('pre_get_posts','searchfilter');
Hier ist eine Erklärung zum Code
Hier ist eine Erklärung zum Code, der die Suche filtert, um nur Beiträge und keine Seiten (oder auch beides) zuzulassen:
1. Die Funktion “searchfilter”:
Die Funktion “searchfilter” ist eine benutzerdefinierte Funktion, die wir erstellen, um die Suche zu filtern. Sie wird später als Filter für die WordPress-Suchergebnisse verwendet. Die Funktion akzeptiert den $query-Parameter, der das Suchabfrage-Objekt enthält.
2. Bedingung für die Suche:
Innerhalb der Funktion wird zuerst überprüft, ob es sich um eine Suchanfrage handelt, indem wir die Bedingung “$query->is_search” verwenden. Das stellt sicher, dass der Filter nur auf Suchanfragen angewendet wird und nicht auf andere Abfragen.
3. Bedingung für den Administratorbereich (Backend):
Die nächste Bedingung “!is_admin()” stellt sicher, dass der Filter nicht im Administratorbereich (Backend) angewendet wird. Dies bedeutet, dass der Filter nur auf der Website und nicht im WordPress-Adminbereich funktioniert.
4. Setzen des post_type-Parameters:
Wenn die oben genannten Bedingungen erfüllt sind (es handelt sich um eine Suchanfrage und wir sind nicht im Adminbereich), wird der post_type-Parameter für die Suche festgelegt.
a) Option 1: Nur Beiträge zulassen:
Im ursprünglichen Code wird der post_type-Parameter auf ‘post’ gesetzt. Das bedeutet, dass nur Beiträge in den Suchergebnissen angezeigt werden. Seiten werden ausgeschlossen.
b) Option 2: Beiträge und Seiten zulassen:
Wenn du die zweite Option wählst und den Code wie in der Zusätzlichen Option 1 erklärt anpasst, wird der post_type-Parameter auf ein Array mit ‘post’ und ‘page’ gesetzt. Dadurch werden sowohl Beiträge als auch Seiten in den Suchergebnissen angezeigt.
c) Option 3: Nur Seiten zulassen:
Entscheidest du dich für die dritte Option und passt den Code wie in der Zusätzlichen Option 2 beschrieben an, wird der post_type-Parameter auf ‘page’ gesetzt. Das bedeutet, dass nur Seiten in den Suchergebnissen angezeigt werden, Beiträge werden ausgeschlossen.
5. Die Rückgabe des $query-Objekts:
Am Ende der Funktion wird das geänderte $query-Objekt zurückgegeben, um den Filtereffekt auf die Suchergebnisse zu übernehmen.
6. Der Filter “pre_get_posts”:
Schließlich wird die Funktion “searchfilter” mit dem Filter “pre_get_posts” verbunden. Dieser Filter wird vor der Ausführung der Hauptabfrage für die Suchergebnisse aufgerufen und ermöglicht es uns, die Abfrageparameter zu ändern, bevor die Ergebnisse zurückgegeben werden.
Dadurch wird unser Filter angewendet und die Suchergebnisse entsprechend eingeschränkt, abhängig von den festgelegten post_type-Parametern.
Das Hinzufügen dieses Codes zur functions.php-Datei deines WordPress-Themes ermöglicht dir also, die Suche auf deiner Website nach deinen Bedürfnissen anzupassen. Du kannst wählen, ob nur Beiträge oder auch Seiten in den Suchergebnissen erscheinen sollen oder ob du beides zulässt. Dies verbessert die Benutzererfahrung und sorgt dafür, dass die Suchergebnisse besser zu den Bedürfnissen deiner Website-Besucher passen.