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 字符串

所有已知问题 →