Navigation überspringen
Aktualisiert
Juni 7, 2024

WPML Sticky Links verhindert, dass Links zwischen Seiten und Beiträgen jemals unterbrochen werden, selbst wenn Seiten verschoben und umbenannt werden.

WordPress macht es allzu leicht, Seitenadressen zu ändern, wodurch alle eingehenden Links unterbrochen werden (404-Fehler). Hier sind ein paar Aktionen, die zu einem 404-Fehler führen können:

  • Ändern der übergeordneten Ebene der Seite
  • Ändern des Slugs
  • Ändern der Permalink-Struktur der Website

WPML verhindert, dass Änderungen an URLs eingehende Links unterbrechen. Wenn Sie einen Link erstellen, macht WPML ihn automatisch klebrig. Anstatt die URL dieser Seite (zum Zeitpunkt der Erstellung des Links) zu speichern, wird die Seitennummer gespeichert. Das kann sich nie ändern, egal was Sie tun.

Wenn die Seite dann angezeigt wird, fügt WPML den Permalink der Seite, auf die Sie verlinken, ein. Wenn sich die URL ändert, werden alle Seiten, die darauf verweisen, sofort aktualisiert und mit der richtigen Adresse verlinkt.

Die folgenden Screenshots zeigen, wie die internen Links in der Datenbank aussehen, wenn Sticky Links aktiviert sind.

Links, die von WPML im Block-Editor als Sticky Links angezeigt werden
Links, die von WPML im Block-Editor als Sticky Links angezeigt werden
Von WPML in Sticky Links umgewandelte Links werden im Classic Editor angezeigt
Von WPML in Sticky Links umgewandelte Links werden im Classic Editor angezeigt

Ihre Benutzer werden diese „seltsamen“ Links nie sehen. Stattdessen wird WPML sie bei der Anzeige der Seiten durch die aktuellen Permalinks ersetzen.

Sobald Sie das Modul Sticky Links aktiviert haben, können Sie steuern, welche Strings es verarbeitet. Gehen Sie dazu auf die Seite WPML Sticky Links .

Sticky Links vor der Verarbeitung
Sticky Links vor der Verarbeitung

Standardmäßig verwandelt WPML alle Links im Beitragstext in Sticky Links. Sie können auch Links in Widgets und Strings in Sticky Links verwandeln.

Mit WPML können Sie alle regulären Links im Stapelverfahren durch Sticky Links ersetzen. Es meldet auch alle vorhandenen defekten Links und hilft, diese zu beheben.

Wenn Sie Sticky Links aktiviert haben, nachdem Sie einen Inhalt erstellt haben, werden Links in diesem bestehenden Inhalt nicht sofort in Sticky Links umgewandelt.

Auf dem Verwaltungsbildschirm für Sticky Links erfahren Sie, wie viele Inhalte normale (nicht klebrige) Links enthalten dürfen. WPML kann diese Inhalte scannen und alle Links in Sticky Links umwandeln. Klicken Sie dazu auf den Button Scannen.

Sie können Ihre Links jederzeit wieder zu normalen (nicht sticky) Permalinks machen, indem Sie auf Revert sticky URLs to permalinks klicken.

Verlinkung zu 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, kann es sein, dass Sie dies nicht tun 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 in die Datei functions.php Ihres Themes einfügen.

Allow links to pages in other languages
add_filter( 'wpml_sl_blacklist_requests', 'wpml_sl_blacklist_requests', 10, 2 );

function wpml_sl_blacklist_requests( $blacklist, $sitepress ) {
    $blacklist[] = 'documentation';
    return $blacklist;
}

Im obigen Code verwenden Sie das Array $blacklist , um alle URL-Slugs für die Seiten in den Originalsprachen anzugeben, zu denen Sie linken 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:

Example of specifying the list of URLs to allow linking to
$blacklist[] = 'documentation';

$blacklist[] = 'page-builders';

Standardmäßig sucht das Sticky Links Plugin nicht nach Links, die durch Shortcodes erzeugt wurden.

Wenn Sie einen Shortcode auf Ihrer Seite haben, der einen Link wie „?page_id=XX“ erzeugt, wird dieser Ihren Benutzern angezeigt, ohne in einen Permalink umgewandelt zu werden.

Um diese Shortcodes mit Sticky Links zu behandeln, fügen Sie diesen Snippet zu Ihrer functions.php Datei hinzu:

Handle links inside shortcode content
if ( class_exists( 'WPML_Sticky_Links' ) ) {
	global $WPML_Sticky_Links;
	add_filter( 'do_shortcode_tag', [ $WPML_Sticky_Links, 'show_permalinks' ], 0 );
}