WPML

Tổng quan về sự cố

Khi sử dụng widget Post Grid từ plugin Unlimited Elements for Elementor, widget không lấy được các bài viết đã dịch trong các phiên bản đã dịch của các trang.

Giải pháp tạm thời

Sự cố này đã được khắc phục. Việc cập nhật lên phiên bản mới nhất giải quyết vấn đề này trên trang web của bạn, vì vậy bạn chỉ cần giải pháp tạm thời này nếu chưa thể cập nhật.

Vui lòng đảm bảo bạn có bản sao lưu toàn bộ trang web trước khi tiếp tục.

  • Mở tệp functions.php trong giao diện của bạn.
  • Thêm mã sau:
    // 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']);
            }
        }	
    }

Tất cả lỗi đã ghi nhận

Vẫn gặp sự cố này?

Nếu việc cập nhật không khắc phục được, hãy đặt một câu hỏi hỗ trợ và chúng tôi sẽ cùng bạn xem xét.