# Sticky Links: soha nem törő hivatkozások

> Hogyan őrzi meg a WPML a belső hivatkozásokat, ha egy oldal címe vagy helye változik.

A WordPressben könnyű megváltoztatni egy oldal címét, és ezzel minden hozzá vezető hivatkozás 404-es hibát ad. Ilyen változtatás például:

- az oldal szülőjének módosítása,
- a webcím-azonosító (slug) módosítása,
- a webcímszerkezet (permalink) módosítása.

A WPML **Sticky Links** (ragadós hivatkozások) modulja megakadályozza, hogy a címváltozás megszakítsa a bejövő hivatkozásokat. Ha hivatkozást hozol létre, a WPML magától ragadóssá teszi: az oldal címe helyett az oldal azonosítószámát tárolja, ami semmilyen módosítástól nem változik. Megjelenítéskor a WPML az oldal aktuális címét illeszti be, így a címváltozás után az összes hivatkozó oldal azonnal a jó címre mutat.

A szerkesztőben a ragadós hivatkozásra kattintva az oldal azonosítószámát tartalmazó `?page_id=` címet látod, nem a szép webcímet. A látogatók ezt soha nem látják: a WPML az oldalak megjelenítésekor lecseréli az aktuális címre. Ez a blokkszerkesztőben és a klasszikus szerkesztőben is így működik.

## A Sticky Links beállításai

Ha a Sticky Links modul be van kapcsolva, a **WPML → Sticky links** oldalon szabályozhatod, mit kezeljen.

- Alapból a WPML a bejegyzés szövegében lévő összes hivatkozást ragadóssá teszi. Ide veheted a widgetekben és a karakterláncokban lévő hivatkozásokat is.
- Az összes meglévő hivatkozást tömegesen ragadóssá alakíthatod, és a modul jelzi a már törött hivatkozásokat is, segít kijavítani őket.
- Ha a modult már meglévő tartalom után kapcsolod be, a régi hivatkozások nem alakulnak át azonnal. Az oldal megmutatja, mennyi tartalomban lehet még hagyományos hivatkozás. A **Scan** gombbal a WPML átvizsgálja ezeket, és ragadóssá alakítja a hivatkozásokat.
- A **Revert sticky URLs to permalinks** gombbal bármikor visszaállíthatod a hivatkozásokat hagyományos webcímre.

## Hivatkozás másik nyelvű oldalra

A Sticky Links automatikusan igazítja a hivatkozásokat az aktuális nyelvhez. Ha szándékosan másik nyelvű oldalra hivatkozol, a modul ezt felülírhatja, és ugyanazon a nyelven lévő oldalra irányít.

Hogy a másik nyelvű hivatkozás megmaradjon, add hozzá a téma `functions.php` fájljához a következő szűrőt. A `$blacklist` tömbbe azoknak az oldalaknak a slugjait írd, amelyekre eredeti nyelven szeretnél hivatkozni:

```php
add_filter( 'wpml_sl_blacklist_requests', 'wpml_sl_blacklist_requests', 10, 2 );

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

Több oldalhoz soronként add hozzá a slugot:

```php
$blacklist[] = 'documentation';
$blacklist[] = 'page-builders';
```

## Hivatkozások shortcode-ok tartalmában

Alapból a Sticky Links nem keresi a shortcode-ok által előállított hivatkozásokat. Ha egy shortcode `?page_id=XX` alakú hivatkozást ad vissza, a látogatók így, szép webcímre cserélés nélkül látják. Hogy a shortcode tartalmát is kezelje a modul, add hozzá a `functions.php` fájlhoz:

```php
if ( class_exists( 'WPML_Sticky_Links' ) ) {
    global $WPML_Sticky_Links;
    add_filter( 'do_shortcode_tag', [ $WPML_Sticky_Links, 'show_permalinks' ], 0 );
}
```
