WPML Sticky-Links verhindert, dass Links zwischen Seiten und Beiträgen jemals ins Leere führen, selbst wenn Seiten verschoben oder umbenannt werden.
WordPress macht es nur allzu leicht, Seitenadressen zu ändern, was dazu führt, dass alle eingehenden Links ins Leere führen (404-Fehler). Hier sind einige Aktionen, die zu einem 404-Fehler führen können:
- Ändern der übergeordneten Seite
- Ändern des Slugs
- Ändern der Permalink-Struktur der Website
WPML verhindert, dass Änderungen an URLs dazu führen, dass eingehende Links ungültig werden. Wenn Sie einen Link erstellen, wandelt WPML ihn automatisch in einen Sticky-Link um. Anstatt die URL dieser Seite (zum Zeitpunkt der Linkerstellung) zu speichern, speichert es die Seitennummer. Diese kann sich niemals ändern, ganz gleich, was Sie tun.
Wenn die Seite dann angezeigt wird, fügt WPML den Permalink der Seite ein, auf die Sie verlinken. Wann immer sich die URL ändert, werden alle Seiten, die darauf verlinken, sofort aktualisiert und verlinken auf die richtige Adresse.
Die folgenden Screenshots zeigen, wie interne Links in der Datenbank aussehen, sobald Sticky-Links aktiviert sind.
Ihre Benutzer werden diese „seltsamen“ Links niemals sehen. Stattdessen ersetzt WPML sie bei der Anzeige der Seiten durch die aktuellen Permalinks.
Steuerung der Sticky-Links
Sobald Sie das Modul Sticky-Links aktivieren, können Sie steuern, welche Strings es verarbeitet. Gehen Sie dazu zur Seite WPML → Sticky-Links.

Standardmäßig wandelt WPML alle Links im Textkörper des Beitrags in Sticky-Links um. Sie können auch Links in Widgets und Strings in Sticky-Links umwandeln.
WPML ermöglicht es Ihnen, alle regulären Links im Stapelbetrieb durch Sticky-Links zu ersetzen. Es meldet auch alle vorhandenen fehlerhaften Links und hilft bei deren Behebung.
Wenn Sie Sticky-Links erst nach der Erstellung von Inhalten aktiviert haben, werden die Links in diesen vorhandenen Inhalten nicht sofort in Sticky-Links umgewandelt.
Der Admin-Bildschirm von Sticky-Links zeigt Ihnen, wie viele Inhalte normale Links (keine Sticky-Links) enthalten könnten. WPML kann diese Inhalte durchsuchen und alle Links in Sticky-Links umwandeln. Klicken Sie dazu auf die Schaltfläche Durchsuchen.
Sie können Ihre Links jederzeit wieder in reguläre Permalinks (keine Sticky-Links) umwandeln, indem Sie auf Revert sticky URLs to permalinks klicken.
Verlinkung auf Seiten in einer anderen Sprache
Manchmal möchten Sie vielleicht einen Link zu einer Seite einfügen, die in einer anderen Sprache ist. Da Sticky-Links die Links automatisch anpasst, könnte es Sie daran hindern und den Link stattdessen so anpassen, dass er auf dieselbe Sprache verweist.
Um Links zu Seiten in anderen Sprachen hinzufügen zu können, müssen Sie den folgenden Filter zur Datei functions.php Ihres Themes hinzufügen.
Links zu Seiten in anderen Sprachen zulassen
add_filter( 'wpml_sl_blacklist_requests', 'wpml_sl_blacklist_requests', 10, 2 );
function wpml_sl_blacklist_requests( $blacklist, $sitepress ) {
$blacklist[] = 'documentation';
return $blacklist;
}Verwenden Sie im obigen Code das Array $blacklist, um alle URL-Slugs für die Seiten in den Originalsprachen anzugeben, auf die Sie verlinken möchten.
In unserem Beispiel möchten wir auf die englische Version der Seiten „Documentation“ (Slug „documentation“) und „Page Builders“ (Slug „page-builders“) verlinken, also verwenden wir die folgenden zwei Zeilen:
Beispiel für die Angabe der Liste von URLs, auf die verlinkt werden darf
$blacklist[] = 'documentation'; $blacklist[] = 'page-builders';
Umgang mit Links innerhalb von Shortcode-Inhalten
Standardmäßig sucht das Plugin Sticky-Links nicht nach Links, die durch Shortcodes generiert wurden.
Wenn Sie einen Shortcode auf Ihrer Seite haben, der einen Link wie „?page_id=XX“ generiert, wird dieser Ihren Benutzern angezeigt, ohne in einen Permalink umgewandelt zu werden.
Um diese Shortcode-Inhalte mit Sticky-Links zu verarbeiten, fügen Sie dieses Snippet zu Ihrer Datei functions.php hinzu:
Links innerhalb von Shortcode-Inhalten verarbeiten
if ( class_exists( 'WPML_Sticky_Links' ) ) {
global $WPML_Sticky_Links;
add_filter( 'do_shortcode_tag', [ $WPML_Sticky_Links, 'show_permalinks' ], 0 );
}
