WPML

问题概述

使用Unlimited Elements for Elementor插件的Post Grid小工具时,该小工具在页面的翻译版本中无法获取已翻译的文章。

临时解决方法

这个问题已修复。 更新到最新版本即可在您的站点上解决此问题,因此,只有当您暂时无法更新时,才需要此临时解决方法。

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

  • 打开您主题的functions.php文件。
  • 添加以下代码:
    // WPML Workaround for compsupp-7445
    add_filter( 'elementor/frontend/before_render', 'wpml_compsupp7445_filter_ucaddon_post_grid');
    
    function wpml_compsupp7445_filter_ucaddon_post_grid($element) {
        if ( 'ucaddon_post_grid' !== $element->get_name() ) {
            return;
        }
    
        $settings = $element->get_settings();
    
        if ( isset( $settings['post_list_manual_select_post_ids'] ) && is_array( $settings['post_list_manual_select_post_ids'] ) ) {
            foreach ( $settings['post_list_manual_select_post_ids'] as $key => $id ) {      
    
                $post_type = get_post_type( $id );
    
                if ( ! $post_type ) {
                    continue;
                }
    
                $id = apply_filters( 'wpml_object_id', $id, $post_type, false );
    
                unset($settings['post_list_manual_select_post_ids'][$key]);
                $settings['post_list_manual_select_post_ids'][] = $id;
            }
    
            $element->set_settings( 'post_list_manual_select_post_ids', $settings['post_list_manual_select_post_ids'] );
        }
    
        if (isset($settings['post_list_manual_post_ids_dynamic'])) {
            // Check if the IDs are in a string and convert them to an array
            if (is_string($settings['post_list_manual_post_ids_dynamic'])) {
                $settings['post_list_manual_post_ids_dynamic'] = explode(',', $settings['post_list_manual_post_ids_dynamic']);
            }
    
            // Proceed only if it's an array
            if (is_array($settings['post_list_manual_post_ids_dynamic'])) {
                foreach ($settings['post_list_manual_post_ids_dynamic'] as $key => $id) {
                    $post_type = get_post_type($id);
                    if (!$post_type) {
                        continue;
                    }
                    $translated_id = apply_filters('wpml_object_id', $id, $post_type, false);
                    $settings['post_list_manual_post_ids_dynamic'][$key] = $translated_id;
                }
                $element->set_settings('post_list_manual_post_ids_dynamic', $settings['post_list_manual_post_ids_dynamic']);
            }
        }	
    }

所有已知问题

仍然遇到此问题?

如果更新无法解决问题,请提出支持问题,我们将与您一起排查。