WPML
Статус
Ожидается ответ автора
Теги темы
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'] );
            }
        }
            
2. Отобразите переведенный 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']}");
            
3. Пересохраните слайдер
  • Измените оригинальный слайдер
  • Сохраните или опубликуйте слайдер еще раз
4. Переведите зарегистрированные строки URL-адресов
  • Перейдите в WPML > Перевод строк
  • Отфильтруйте по домену LayerSlider Sliders
  • Переведите зарегистрированные строки URL-адресов

Все известные проблемы →