WPML Sticky Links предотвращает разрыв ссылок между страницами и записями, даже если страницы перемещаются и переименовываются.
В WordPress слишком легко изменить адреса страниц, в результате чего все входящие ссылки будут нарушены (ошибка 404). Вот несколько действий, которые могут привести к ошибке 404:
- Изменение родительской страницы
- Смена слаг
- Изменение структуры постоянных ссылок сайта
WPML не позволяет изменениям URL нарушать входящие ссылки. Когда Вы создаете ссылку, WPML автоматически делает ее липкой. Вместо того чтобы хранить URL этой страницы (на момент создания ссылки), он хранит номер страницы. Это никогда не изменится, что бы Вы ни делали.
Затем, когда страница отображается, WPML вставляет постоянную ссылку на страницу, на которую Вы ссылаетесь. При изменении URL все страницы, ссылающиеся на него, немедленно обновляются и ссылаются на правильный адрес.
На следующих скриншотах показано, как выглядят внутренние ссылки в базе данных после включения функции Sticky Links.
Ваши пользователи никогда не увидят эти «странные» ссылки. Вместо этого WPML заменит их постоянными ссылками при отображении страниц.
Элементы управления Sticky Links
Включив модуль Sticky Links, Вы можете контролировать, какие строки он обрабатывает. Для этого перейдите на страницу WPML → Sticky Links .
По умолчанию WPML превращает все ссылки в теле сообщения в липкие ссылки. Вы также можете превратить ссылки в виджетах и строках в липкие ссылки.
WPML позволит Вам пакетно заменить все обычные ссылки на липкие. Он также сообщит о всех существующих неработающих ссылках и поможет их исправить.
Если Вы включили Sticky Links после создания некоторого контента, ссылки в существующем контенте не сразу превратятся в «липкие».
Экран администратора Sticky Links подскажет Вам, какой объем контента может содержать обычные (не липкие) ссылки. WPML может просканировать этот контент и преобразовать все ссылки в «липкие». Для этого нажмите на кнопку Сканировать.
Вы всегда можете вернуть свои ссылки к обычным (не липким) постоянным ссылкам, нажав на кнопку Revert sticky URLs to permalinks.
Ссылки на страницы на другом языке
Иногда Вам может понадобиться вставить ссылку на страницу на другом языке. Поскольку Sticky Links настраивает ссылки автоматически, он может помешать Вам сделать это и настроить ссылку так, чтобы она указывала на тот же язык.
Чтобы иметь возможность добавлять ссылки на страницы на других языках, Вам необходимо добавить следующий фильтр в файл 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») и «Конструкторы страниц» (слаг «page-builders»), поэтому мы используем следующие две строки:
$blacklist[] = 'documentation'; $blacklist[] = 'page-builders';
Работа со ссылками внутри содержимого шорткодов
По умолчанию плагин Sticky Links не ищет ссылки, сгенерированные шорткодами.
Если на Вашей странице есть шорткод, генерирующий ссылку типа «?page_id=XX«, она будет отображаться у пользователей без преобразования в постоянную ссылку.
Чтобы обработать контент этих шорткодов с помощью Sticky Links, добавьте этот фрагмент в Ваш файл functions.php:
if ( class_exists( 'WPML_Sticky_Links' ) ) { global $WPML_Sticky_Links; add_filter( 'do_shortcode_tag', [ $WPML_Sticky_Links, 'show_permalinks' ], 0 ); }