- Статус
- Ожидается ответ автора
- Теги темы
- Compatibility
Обзор проблемы
При использовании LayerSlider с WPML Вы можете столкнуться с проблемой, когда ссылки, добавленные в Layer Settings > Link, не переводятся на фронтенде, даже если сам контент слайдера переведен.
Обходное решение
Обходное решение 1 — без кода (рекомендуется)
Это обходное решение работает только для внутренних ссылок.- Перейдите в «Layer Settings > Link > Layer Linking»
- Нажмите «Choose Post or Page» и выберите нужную запись или страницу
- Сохраните Ваш слайдер
- WPML сможет перевести ссылку автоматически
Обходное решение 2 — изменение кода
Пожалуйста, перед продолжением убедитесь, что у Вас есть полная резервная копия сайта. 1. Зарегистрируйте строки URL-адресов слоя для перевода- Откройте файл …/wp-content/themes/enfold/config-layerslider/LayerSlider/assets/wp/actions.php.
- Найдите строку 886.
- Замените:
foreach($data['layers'] as $slideIndex => $slide) { - На:
foreach($data['layers'] as $slideIndex => $slide) { foreach ( $slide['sublayers'] as $index => $sublayer ) { if ( ! empty( $sublayer['url'] ) ) { $string_name = "slider-{$sliderID}-sublayer_link-{$sublayer['url']}"; do_action( 'wpml_register_single_string', 'LayerSlider Sliders', $string_name, $sublayer['url'] ); } }
- Откройте файл …/wp-content/themes/enfold/config-layerslider/LayerSlider/assets/includes/slider_markup_html.php.
- Найдите строку 702.
- Замените:
if( ! empty( $layer['props']['url'] ) ) { - На:
if( ! empty( $layer['props']['url'] ) ) { $layer['props']['url'] = apply_filters( 'wpml_translate_single_string', $layer['props']['url'], 'LayerSlider Sliders', "slider-{$id}-sublayer_link-{$layer['props']['url']}");
- Измените оригинальный слайдер
- Сохраните или опубликуйте слайдер еще раз
- Перейдите в WPML > Перевод строк
- Отфильтруйте по домену LayerSlider Sliders
- Переведите зарегистрированные строки URL-адресов