Клейкие ссылки WPML не дают ссылкам между страницами и записями перестать работать, даже если страницы перемещаются и переименовываются.
В WordPress очень легко изменить адреса страниц, из-за чего все входящие ссылки перестают работать (ошибка 404). Вот несколько действий, которые могут привести к ошибке 404:
- Изменение родительской страницы
- Изменение слага
- Изменение структуры постоянных ссылок сайта
WPML не дает изменениям в URL-адресах сломать входящие ссылки. Когда Вы создаете ссылку, WPML автоматически делает ее клейкой. Вместо сохранения URL-адреса этой страницы (на момент создания ссылки) он сохраняет номер страницы. Он никогда не изменится, что бы Вы ни делали.
Затем, при отображении страницы, WPML вставляет постоянную ссылку страницы, на которую Вы ссылаетесь. При каждом изменении URL-адреса все страницы, ссылающиеся на него, немедленно обновляются и будут ссылаться на правильный адрес.
На следующих скриншотах показано, как внутренние ссылки выглядят в базе данных после того, как Клейкие ссылки включены.
Ваши пользователи никогда не увидят эти «странные» ссылки. Вместо этого WPML заменит их текущими постоянными ссылками при отображении страниц.
Управление клейкими ссылками
Как только Вы включите модуль Клейкие ссылки, Вы сможете контролировать, какие строки он обрабатывает. Для этого перейдите на страницу WPML → Клейкие ссылки.

По умолчанию WPML превращает все ссылки в теле записи в клейкие ссылки. Вы также можете сделать клейкими ссылки в виджетах и строках.
WPML позволяет пакетно заменить все обычные ссылки на клейкие. Он также сообщит о любых существующих неработающих ссылках и поможет их исправить.
Если Вы включили Клейкие ссылки после создания какого-либо контента, ссылки в этом существующем контенте не сразу становятся клейкими.
На экране админ-панели Клейкие ссылки показано, сколько контента может содержать обычные (не клейкие) ссылки. WPML может просканировать этот контент и преобразовать все ссылки в клейкие. Нажмите кнопку Сканировать, чтобы сделать это.
Вы всегда можете вернуть своим ссылкам вид обычных (не клейких) постоянных ссылок, нажав Revert sticky URLs to permalinks.
Ссылки на страницы на другом языке
Иногда Вам может понадобиться вставить ссылку на страницу, которая находится на другом языке. Поскольку Клейкие ссылки корректируют ссылки автоматически, это может помешать Вам сделать это и вместо этого скорректировать ссылку так, чтобы она указывала на тот же язык.
Чтобы иметь возможность добавлять ссылки на страницы на других языках, Вам нужно добавить следующий фильтр в файл functions.php Вашей темы оформления.
Разрешить ссылки на страницы на других языках
add_filter( 'wpml_sl_blacklist_requests', 'wpml_sl_blacklist_requests', 10, 2 );
function wpml_sl_blacklist_requests( $blacklist, $sitepress ) {
$blacklist[] = 'documentation';
return $blacklist;
}В приведенном выше коде используйте массив $blacklist, чтобы указать все URL-слаги для страниц на языках оригинала, на которые Вы хотите сослаться.
В нашем примере мы хотим сослаться на английскую версию страниц «Documentation» (слаг «documentation») и «Page Builders» (слаг «page-builders»), поэтому мы используем следующие две строки:
Пример указания списка URL-адресов, на которые разрешено ссылаться
$blacklist[] = 'documentation'; $blacklist[] = 'page-builders';
Обработка ссылок внутри содержимого шорткодов
По умолчанию плагин Клейкие ссылки не ищет ссылки, сгенерированные шорткодами.
Если на Вашей странице есть шорткод, который генерирует ссылку вроде «?page_id=XX», она будет отображаться для Ваших пользователей без преобразования в постоянную ссылку.
Чтобы обрабатывать содержимое этих шорткодов с помощью Клейких ссылок, добавьте этот фрагмент кода в файл functions.php:
Обработка ссылок внутри содержимого шорткодов
if ( class_exists( 'WPML_Sticky_Links' ) ) {
global $WPML_Sticky_Links;
add_filter( 'do_shortcode_tag', [ $WPML_Sticky_Links, 'show_permalinks' ], 0 );
}
