Kürzlich habe ich meine Website annetteschwindt.digital inhaltlich neu strukturiert. Dabei habe ich am Anfang einer Seite per Ankerfunktion Sprunglinks zu weiter unten stehenden Bereichen auf derselben Seite gesetzt. Für gewöhnlich funktioniert das in WordPress problemlos via Erweitert > HTML-Anker.
Das Problem bei meiner Seite war, dass manche Sprunglinks plötzlich nicht mehr funktionierten. Beim Klick darauf landete man weiter oben als beabsichtigt. Nach einigem Testen stellte sich heraus, dass der Browser meine manuell vergebenen Anker ignoriert und stattdessen zur ersten gleichnamigen Überschrift auf der Seite springt.
Da erinnerte ich mich, dass WordPress im Zuge der Entwicklung des Block-Editors irgendwann eingeführt hatte, für Überschriften automatisch IDs zu vergeben, also Anker zu setzen. An sich eine praktische Sache.
Was aber, wenn das Ankerwort in mehr als einer Überschrift auf der Seite vorkommt, und der Sprunglink nicht zur ersten Überschrift mit diesem Wort gehen soll? Das manuelle Vergeben überschreibt das automatische ja nicht…
Kein Problem bei neueren Websites
Nachdem ich Peter das Phänomen gezeigt hatte, begann er zu recherchieren:
- In WordPress 5.9 waren die autogenerated IDs für Überschriften eingeführt worden. Damals waren sie sogar im Block-Editor zu sehen, nämlich in der Listenansicht und eben unter Erweitert > HTML-Anker, und sie konnten dort auch angepasst werden.
- Bereits in WordPress 5.9.1 war diese als experimentell bezeichnete Funktion aber nach zahlreichen bug reports wieder abgeschafft worden. Entwickler konnten nun die automatische Vergabe nur noch in der functions.php manuell einschalten. Theoretisch war das Problem damit behoben.
Was aber ist mit denen, die in 5.9 die neue Funktion schon benutzt hatten? Sollten die jetzt all ihre Anker manuell neu setzen müssen? Damit dies nicht passiert, wurden die automatisch vergebenen IDs aus 5.9 zwar im Block-Editor nicht mehr dargestellt, blieben aber im Quelltext erhalten. Und damit auch das Problem der doppelten Anker.
Bei Neuinstallationen ab WordPress 6.0 tritt dieses Phänomen gar nicht mehr auf. Nur bei Seiten, die schon 5.9 genutzt hatten, stehen die automatisch vergebenen Anker noch im Quelltext, ohne im Block-Editor an entsprechender Stelle sichtbar zu sein.
Die Lösung des Problems
Abhilfe schafft das manuelle Vergeben eines leicht abgewandelten Ankers ( z.B. mit einer Zahl: kommunikation1 statt kommunikation) oder eines Ankers, der als Wort sonst nirgends vor dem Sprungziel auf der Seite vorkommt. Im Frontend ist das nachher nur in der URL zu sehen und da schaut eh kaum einer hin. Jedenfalls bekommt man auf diese Weise wieder funktionierende Sprunglinks.
Wenn Ihre Website also in WordPress 5.9 schon bestand und Sie jetzt Sprungziele setzen, die nicht funktionieren, dann testen Sie sie mal auf das hier beschriebene Phänomen.
Schreibe einen Kommentar