WPML
状态
由作者解决
类型
Bug
相关插件/主题
Ultimate Addons for Elementor
主题标签
Compatibility

问题概述

将 Ultimate Addons for Elementor 与 WPML 搭配使用时,Post Grid Filter 无法在次要语言中显示已翻译的分类项。分类仅以默认语言显示。

临时解决方法

在继续操作之前,请确保已为您的站点创建完整的站点备份。


  • 打开 …/wp-content/plugins/ultimate-elementor/modules/posts/template-blocks/skin-style.php 文件。

  • 找到第 1088 行。

  • 将:
    $filter_type = $settings[ $filter_by . '_' . $post_type . '_filter_rule' ];
    
    $filters = $settings[ 'tax_' . $filter_by . '_' . $post_type . '_filter' ];

  • 替换为:
    $filter_type = $settings[ $filter_by . '_' . $post_type . '_filter_rule' ];
    
    // WPML Workaround for compsupp-7728
    if (class_exists('Sitepress')) {
    	$original_terms = $settings[ 'tax_' . $filter_by  . '_' . $post_type . '_filter' ];
    	$translated_terms = [];
    
    	foreach ($original_terms as $term_slug) {
    		$term_obj = get_term_by('slug', $term_slug, $filter_by );
    		
    		if ($term_obj) {
    			$translated_term_id = apply_filters('wpml_object_id', $term_obj->term_id, $filter_by , true);
    			$translated_term = get_term($translated_term_id, $filter_by );
    			if ($translated_term && !is_wp_error($translated_term)) {
    				$translated_terms[] = $translated_term->slug;
    			}
    		}
    	}
    
    	$settings[ 'tax_' . $filter_by  . '_' . $post_type . '_filter' ] = $translated_terms;			
    }
    
    $filters = $settings[ 'tax_' . $filter_by . '_' . $post_type . '_filter' ];

所有已知问题