WPML

WPML 3.9 đã giới thiệu khả năng hiển thị nội dung lấy từ ngôn ngữ gốc khi xem các trang bằng các ngôn ngữ khác. Nếu trang web của bạn dựa vào việc nhân bản nội dung trước phiên bản 3.9, bạn có thể muốn xóa tất cả nội dung trùng lặp khỏi trang web của mình trước khi sử dụng chế độ dịch mới này.

Cách sử dụng hướng dẫn này

Các bước được cung cấp trên trang này sẽ xóa các cài đặt và nội dung khỏi cơ sở dữ liệu. Chỉ tiến hành nếu bạn biết mình đang làm gì và chắc chắn phải bắt đầu bằng việc tạo một bản sao lưu toàn bộ cơ sở dữ liệu trang web của bạn.

Để sử dụng các truy vấn SQL được cung cấp, bạn phải chỉnh sửa chúng:
  • Thay thế XXXX bằng loại bài viết mà bạn muốn xóa nội dung trùng lặp (ví dụ: “post”, “product” hoặc “page”).
  • Thay thế YYYY bằng mã ngôn ngữ mặc định của trang web (ví dụ: “en”).
  • Thay thế wp_ bằng tiền tố bảng được cấu hình thông qua biến $table_prefix trong tệp wp-config.php (mặc định là wp_).

Cuối cùng, bạn cần chạy các truy vấn này bằng một trong các công cụ làm việc với cơ sở dữ liệu SQL, ví dụ như phpMyAdmin.

1. Xóa nội dung trùng lặp

Xóa nội dung trùng lặp khỏi wp_posts
DELETE FROM wp_posts
WHERE post_type = 'XXXX' AND ID IN (
  SELECT pm.post_id
  FROM wp_postmeta pm
    JOIN wp_icl_translations t ON t.element_id = pm.meta_value
  WHERE pm.meta_key = '_icl_lang_duplicate_of' AND pm.meta_value > 0 AND
    t.element_type LIKE 'post_%' AND t.language_code = 'YYYY'
)

2. Xóa cài đặt dịch thuật

Xóa cài đặt dịch thuật khỏi wp_icl_translations
DELETE FROM wp_icl_translations
WHERE element_type = 'post_XXXX' AND element_id IN (
  SELECT pm.post_id
  FROM wp_postmeta pm
    JOIN wp_icl_translations t ON t.element_id = pm.meta_value
  WHERE meta_key = '_icl_lang_duplicate_of' AND meta_value > 0 AND t.language_code = 'YYYY'
)

3. Xóa post meta bị mồ côi


Lưu ý rằng việc thực thi truy vấn này khá chậm và có thể bị quá thời gian, tùy thuộc vào cài đặt máy chủ của bạn. Ngoài ra, bạn không bắt buộc phải chạy truy vấn này vì nó chỉ được sử dụng để dọn dẹp cơ sở dữ liệu của bạn khỏi các post meta bị mồ côi.
Xóa các mục mồ côi khỏi wp_postmeta
DELETE pm
FROM wp_postmeta pm
  LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL

Được viết bởi Amir · Cập nhật lần cuối vào 23 tháng 5 năm 2022