WPML

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.

Von WPML in Sticky-Links umgewandelte Links, im Block-Editor betrachtet
Von WPML in Sticky-Links umgewandelte Links, im Block-Editor betrachtet
Von WPML in Sticky-Links umgewandelte Links, im klassischen Editor betrachtet
Von WPML in Sticky-Links umgewandelte Links, im klassischen Editor betrachtet

Ihre Benutzer werden diese „seltsamen“ Links niemals sehen. Stattdessen ersetzt WPML sie bei der Anzeige der Seiten durch die aktuellen Permalinks.
Sobald Sie das Modul Sticky-Links aktivieren, können Sie steuern, welche Strings es verarbeitet. Gehen Sie dazu zur Seite WPMLSticky-Links.
Sticky-Links vor der Verarbeitung
Sticky-Links vor der Verarbeitung

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';

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 );
}

Geschrieben von Amir · Zuletzt aktualisiert am 19. Februar 2025