Когда на страницу или запись добавляется обычная ссылка, WordPress сохраняет URL-адрес такой страницы в виде ссылки. Таким образом, если изменить URL-адрес, ссылка работать не будет.

Благодаря WordPress менять адреса страниц стало проще, чтобы не получать нерабочие входящие ссылки (ошибка 404). Вот как это можно сделать:

  • изменив родительскую страницу;
  • изменив краткий заголовок;
  • изменив структуру постоянных ссылок сайта.

WPML предотвращает нарушение входных ссылок после внесения изменений в URL-адрес. После создания ссылки WPML автоматически делает ее клейкой. Вместо того, чтобы сохранять URL-адрес страницы (в момент создания ссылки), он сохраняет номер страницы. Он не меняется ни при каких обстоятельствах.

Затем, когда страница отображается, WPML вставляет постоянную ссылку на эту страницу. Всякий раз, когда меняется URL-адрес, все ссылающиеся на него страницы, немедленно обновляются и ссылаются на верный адрес.

На снимке экрана внизу показано, как выглядят внутренние ссылки в базе данных после включения клейких ссылок:

WPML меняет ссылки на клейкие
WPML меняет ссылки на клейкие

Ваши пользователи не будут видеть эти «странные» ссылки. Вместо этого, при отображении страниц WPML заменит их текущими постоянными ссылками.

После включения модуля Клейких ссылок можно управлять, какими строками он будет оперировать. Для этого перейдите на страницу WPML -> Клейкие ссылки.

Клейкие ссылки до обработки
Клейкие ссылки до обработки

По умолчанию WPML сделает все ссылки в тексте записи клейкими. Ссылки в виджетах и строках также можно сделать клейкими.

WPML позволит сразу заменить все обычные ссылки на клейкие. Он также сообщит о неработающих ссылках и поможет их исправить.

Если вы включили клейкие ссылки после создания контента, ссылки в нем не сразу заменяются клейкими.

Окно администрирования клейких ссылок показывает, сколько элементов контента могут содержать обычные (не клейкие) ссылки. WPML может проверить такой контент и заменить все ссылки клейкими. Для этого нажмите кнопку Проверить.

Ссылки всегда можно вернуть в обычное состояние, щелкнув Отменить замену постоянных ссылок клейкими.

Привязка к страницам на другом языке

Иногда вам может понадобиться вставить ссылку на страницу на другом языке. Поскольку модуль Клейких ссылок настраивает ссылки автоматически, он может воспрепятствовать этому и вместо этого настроит ссылку, которая будет указывать на страницу на том же языке.

Чтобы иметь возможность добавлять ссылки на страницы на других языках, в файл functions.php вашей темы следует добавить следующий фильтр.

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

В приведенном выше коде используйте массив $blacklist, чтобы указать все URL кратких заголовков страниц на исходных языках, к которым требуется привязка.

В нашем примере мы хотим привязать английский вариант страниц «Документация» (краткий заголовок «documentation») и «Построители страниц» (краткий заголовок «page-builders»), поэтому используем эти две строки:

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

$blacklist[] = 'page-builders';