Aktualisiert am 9. Mai 2024
Kürzlich habe ich mal wieder ein wenig am Design dieser Webseite gearbeitet und in Beitragsseiten einen Page-Hero eingebaut, in dem der Titel angezeigt wird.
Beim Testen ist mir dann jedoch aufgefallen, dass dieser Titel nicht auf den Suchergebnisseiten funktioniert.
Anstatt des entsprechenden Titels wird dann bei GeneratePress leider der Titel des ersten Beitrags angezeigt.
Bei der Suche nach „Generatepress“ sah das Ergebnis dann so aus:
Das ist natürlich blöd und kann so nicht bleiben.
Nach ein wenig Recherche habe ich jedoch die Lösung im GeneratePress Support Forum gefunden.
Folgende Schritte sind zu tun:
1. Plugin „Code Snippets“ installieren
Installiere dir das Plugin „Code Snippets“, welches du hier findest. Dieses Plugin ist extrem praktisch und sollte in keiner WordPress Seite fehlen.
Damit kannst du auf einfache und saubere Art und Weise diverse Code Snippets auf deiner Seite ausführen, ohne die Datei functions.php bearbeiten zu müssen.
Diese Snippets kannst du beliebig aktivieren, deaktivieren und festlegen, ob sie im Backend, im Frontend oder überall ausgeführt werden sollen.
2. Shortcode für die Suchergebnisseite anlegen
In diesem Plugin kannst du nun ein neues Snippet anlegen, welches einen Shortcode (yh_serach_query) für den Titel der Suchergebnisseite erstellt.
Dazu kannst du einfach den folgenden Code in das Snippet kopieren:
add_shortcode( 'yh_serach_query', function() {
ob_start();
$search_query = get_search_query();
$pre_fix = 'Suchergebnisse für: ';
echo $pre_fix.$search_query;
return ob_get_clean();
} );
Den Text „Suchergebnisse für:“ kannst du nach Belieben anpassen.
3. Shortcode in Hero platzieren
Nun musst du diesen Shortcode einfach im Titel deines Heros für die Suchergebnisseite kopieren, wie auf dem folgenden Bild zu sehen ist:
4. Den originalen Titel der Suchergebnisseite entfernen
Wenn du nun eine Suche durchführst, wirst du sehen, dass du zwar den richtigen Titel im Hero hast, aber zusätzlich darunter auch noch den originalen Titel der Suchergebnisse siehst.
Mit dem folgenden Snippet wird dieser Originaltitel entfernt. Kopiere den Code einfach in ein zweites Code-Snippet.
add_action('wp',function () {
remove_action( 'generate_before_loop', 'generate_do_search_results_title' );
});
Das war es schon.
Jetzt wird der Titel der Suchergebnisse sauber im Titel angezeigt. Wie das aussieht, siehst du auf dem folgenden Bild: