WPML
Trạng thái
Đang mở
Thẻ chủ đề
Bug

Tổng quan về lỗi

Khi bạn gán các thuật ngữ cho các bài viết, WordPress sẽ lưu trữ tổng số bài viết mà một thuật ngữ cụ thể đã được gán.

Nếu bạn xóa một thuật ngữ khỏi một bài viết nào đó thì số lượng sẽ giảm xuống. Nếu Cài đặt được thiết lập để đồng bộ thuật ngữ thì thuật ngữ đã dịch sẽ bị xóa khỏi bài viết đã dịch, nhưng số lượng không giảm xuống.

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

Bạn có thể thêm đoạn mã sau (thông qua một plugin hoặc tệp functions.php trong giao diện của bạn) để buộc tính toán lại số lượng thuật ngữ cho các bản dịch:

add_action( 'deleted_term_relationships', function($object_id, $tt_ids, $taxonomy){

    $trids = array();
    $translated_tt_ids = array();

    foreach ($tt_ids as $tt_id) {
        $trids[] = apply_filters( 'wpml_element_trid', NULL, $tt_id, 'tax_'.$taxonomy );
    }

    foreach ($trids as $trid) {
        $translations = apply_filters( 'wpml_get_element_translations', NULL, $trid, 'tax_'.$taxonomy );
        foreach ($translations as $lang => $translation) {
            $translated_tt_ids[] = $translation->element_id;
        }
    }    

    $translated_tt_ids = array_diff( $translated_tt_ids, $tt_ids );

    if ( count( $translated_tt_ids ) ) {
        wp_update_term_count( $translated_tt_ids, $taxonomy );
    }

}, 11, 3);

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