Cách xóa bản dịch plugin TranslatePress cho một bài viết riêng lẻ (Reset Translation)

Cách thức xóa sạch bản dịch TranslatePress cho một bài viết cụ thể

Vấn đề phổ biến: Bản dịch gặp lỗi hoặc không đồng bộ. Khi quản lý website nhiều ngôn ngữ với TranslatePress, đôi khi bạn đối mặt trường hợp bản dịch hỏng (ví dụ: ngôn ngữ Trung hiện thành tiếng Việt ) hoặc cần xóa sạch toàn diện bản dịch của một bài viết cụ thể nhằm AI dịch mới từ đầu .

Hướng dẫn này sẽ hướng dẫn hai phương pháp để loại bỏ hoàn toàn bản dịch thuộc bất kỳ bài viết ( Bài viết, Trang, Sản phẩm...) nhưng không tác động tới những bài viết khác .

Cách 1 : Xóa bằng SQL ( Triệt để nhất).

Phương pháp này cách an toàn và chính xác nhất, hỗ trợ bạn xóa sạch thông tin ở database.

Bước 1: Lấy ID của viết.

Truy cập trang quản trị WordPress, vào phần Bài viết (Bài viết ) hoặc Pages (Trang ). Rê chuột lên tiêu đề bài viết bạn muốn xử lý, nhìn ở thanh status bar trên trình duyệt, bạn sẽ nhận ra số ID (ví dụ: post=123).

Bước 2: Xác định mã bài viết và bảng dữ liệu ngôn ngữ.

ID bài viết: Ví dụ là 123
Mã ngôn ngữ muốn reset: Ví dụ tiếng Trung (China) thường là zh_cn, tiếng Anh là en_us. Tên bảng ở database sẽ có dạng wp_trp_dictionary_vi_zh_cn (nếu dịch từ Việt sang Trung).

Bước 3: Chạy query SQL.

Truy cập phpMyAdmin (hoặc công cụ xử lý database khác), chọn tới database thuộc website và chạy lệnh SQL sau:

-- Thay '123' bằng ID bài viết thuộc bạn
-- Thay 'wp_trp_dictionary_vi_zh_cn' bằng tên bảng ngôn ngữ cần xóa
DELETE FROM `wp_trp_dictionary_vi_zh_cn`
WHERE `original_id` IN (
SELECT `original_id`
FROM `wp_trp_original_meta`
WHERE `meta_key` = 'post_parent_id'
AND `meta_value` = '123' );

Sau khi chạy xong, toàn bộ bản dịch của bài viết đó sẽ được reset. Bạn chỉ cần ra trang chủ và tải lại trang, TranslatePress sẽ tự động dịch lại từ đầu.

Cách 2 : Dùng Code PHP ( Tiện lợi gọn).

Trường hợp bạn không rành với database hoặc không muốn đụng vào phpMyAdmin, bạn có thể dùng đoạn code nhỏ sau đây .

Bước 1: Chèn code vào functions.php.

Mở file functions.php của theme đang kích hoạt (Giao diện -> Edit), và paste mã này vào cuối file:

add_action('init', function()
// Thay đổi số 123 thành ID bài viết bạn muốn xóa
$post_id_to_clean = 123;
// Thay đổi thành mã ngôn ngữ bạn muốn xóa (ví dụ: vi_zh_cn, vi_en_us)
$lang_pair = 'vi_zh_cn';
if (isset($_GET['clean_post_id']) && $_GET['clean_post_id'] == $post_id_to_clean)
global $wpdb;
$meta_table = $wpdb->prefix . 'trp_original_meta';
$dict_table = $wpdb->prefix . 'trp_dictionary_' . $lang_pair;
// Kiểm tra xem bảng có tồn tại không
if ($wpdb->get_var("SHOW TABLES LIKE '$dict_table'") != $dict_table)
wp_die("Bảng $dict_table không tồn tại. Hãy kiểm tra lại mã ngôn ngữ.");

// Lấy danh sách ID chuỗi thuộc về bài viết này
$original_ids = $wpdb->get_col($wpdb->prepare(
"SELECT original_id FROM $meta_table WHERE meta_key = 'post_parent_id' AND meta_value = %s",
$post_id_to_clean
));
if (!empty($original_ids))
$ids_placeholder = implode(',', array_fill(0, count($original_ids), '%d'));
$wpdb->query($wpdb->prepare(
"DELETE FROM $dict_table WHERE original_id IN ($ids_placeholder)",
$original_ids
));
echo "Đã xóa sạch bản dịch cho bài viết ID: " . $post_id_to_clean;
else
echo "Không tìm thấy chuỗi nào cần xóa hoặc bài viết chưa được dịch.";

exit;

);

Bước 2: Chạy lệnh .

Sau khi save file, bạn mở đường dẫn sau trên trình duyệt ( login admin trước nhé): https://website-cua-ban.com/?clean_post_id=123 ( Đừng quên thay 123 bằng ID bài viết bạn set trong code).

Bước 3: Xóa code.

Sau khi thấy thông báo "Đã xóa sạch bản dịch...", bạn quay lại file functions.php và xóa script vừa chèn khỏi nhằm bảo mật và tối ưu website.

Kết luận | Tóm tắt. Trên đây là 2 phương pháp hỗ trợ bạn reset bản dịch dành một viết cụ thể trong TranslatePress. Điều này rất cần thiết khi bạn thay đổi nội dung gốc lớn hoặc khi bản dịch tự động bị lỗi . Mong các bạn thành công !