WPML

Không có gì cần dịch trong tích hợp ElasticPress. Plugin tương thích làm cho ElasticPress tự động trả về các kết quả đúng ngôn ngữ; công việc của bạn là cài đặt các thành phần, chạy đồng bộ hóa ban đầu và xác nhận các kết quả hiển thị chính xác.

Trước khi bạn bắt đầu

Cài đặt và kích hoạt các plugin này trên cùng một trang web:

Bạn cũng cần một điểm cuối Elasticsearch: tự lưu trữ hoặc một dịch vụ được quản lý như ElasticPress.io, Elastic Cloud hoặc AWS OpenSearch. Cấu hình ElasticPress với máy chủ Elasticsearch của bạn và xác nhận nó lập chỉ mục thành công trên trang web đơn ngôn ngữ trước khi thêm lớp WPML.

Cấu hình các ngôn ngữ WPML của bạn trước khi chạy đồng bộ hóa đầu tiên.

Cách hoạt động của việc lập chỉ mục theo từng ngôn ngữ

WPML ElasticPress tạo một chỉ mục Elasticsearch riêng biệt cho mỗi ngôn ngữ trên trang web của bạn. Chỉ mục của mỗi ngôn ngữ chứa:

  • Các bản dịch sang ngôn ngữ đó cho mọi loại bài viết có thể dịch.
  • Các bài viết bằng ngôn ngữ mặc định cho bất kỳ loại bài viết nào được thiết lập để dự phòng bằng ngôn ngữ mặc định khi không có bản dịch.
  • Bản sao của các bài viết không thể dịch được. Chỉ mục của mọi ngôn ngữ đều bao gồm những bản sao này để chúng có thể xuất hiện trong kết quả tìm kiếm bất kể ngôn ngữ của khách truy cập.

Mọi tài liệu trong một chỉ mục ngôn ngữ đều được phân tích bằng ngôn ngữ đó. Các từ dừng (stopwords), từ gốc (stemming), từ viết tắt, cách xử lý số nhiều và thì đều mang tính đặc thù của ngôn ngữ. Đây là điều làm cho tìm kiếm bằng tiếng Pháp khớp với các từ gốc tiếng Pháp và tìm kiếm bằng tiếng Nhật khớp với hình thái học tiếng Nhật; nếu không có phân tích theo từng ngôn ngữ, công cụ tìm kiếm sẽ áp dụng các quy tắc của một ngôn ngữ cho văn bản của mọi ngôn ngữ khác.

Đối với tìm kiếm của mỗi khách truy cập, WPML ElasticPress định tuyến truy vấn đến chỉ mục ngôn ngữ phù hợp. Nhóm kết quả đã được lọc theo đúng ngôn ngữ trước khi bắt đầu xếp hạng mức độ liên quan.

Chạy đồng bộ hóa ban đầu

Với bốn plugin đang hoạt động và một điểm cuối Elasticsearch được cấu hình trong ElasticPress, hãy chạy đồng bộ hóa ban đầu:

  1. Truy cập ElasticPress > Sync trong trang quản trị WordPress.
  2. Nhấp vào Start Sync.

WPML ElasticPress kích hoạt một lần đồng bộ hóa cho mỗi ngôn ngữ và xây dựng các chỉ mục theo từng ngôn ngữ lần lượt. Trên một trang web lớn, quá trình này có thể mất vài giờ; trang sẽ báo cáo tiến trình khi đồng bộ hóa chạy.

Nếu bạn đang cập nhật từ WPML ElasticPress 1.0 lên 2.0 hoặc mới hơn, hãy lập chỉ mục lại. Định dạng chỉ mục đã thay đổi khi phiên bản 2.0 giới thiệu các chỉ mục theo từng ngôn ngữ.

Sau lần đồng bộ hóa ban đầu, các cập nhật nội dung sẽ tự động chuyển vào đúng chỉ mục. Bất cứ khi nào bạn tạo, sửa đổi hoặc xóa một bài viết, WPML ElasticPress sẽ cập nhật chỉ mục ngôn ngữ tương ứng trong nền tảng dựa trên ngôn ngữ của bài viết đó hoặc cài đặt dịch cho loại bài viết của nó.

Lập chỉ mục các ngôn ngữ cụ thể bằng WP-CLI

Đối với các trang web lớn, các tác vụ theo lịch trình, các tập lệnh triển khai hoặc bất kỳ quy trình làm việc nào không thể sử dụng giao diện người dùng quản trị, WPML ElasticPress cung cấp một lệnh WP-CLI (wp wpml_elasticpress sync) bao bọc quá trình đồng bộ hóa CLI của riêng ElasticPress và thêm một cờ --post-lang để chọn ngôn ngữ.

Chạy đồng bộ hóa ban đầu chỉ cho các bài viết tiếng Anh:

wp wpml_elasticpress sync --setup --post-type=post --post-lang=en

Cờ --setup xóa các chỉ mục hiện có trước khi xây dựng lại. Sau lệnh này, tìm kiếm bằng tiếng Anh trả về kết quả bằng tiếng Anh; các tìm kiếm từ các ngôn ngữ khác không trả về kết quả nào vì các chỉ mục của chúng chưa được xây dựng.

Thêm ngôn ngữ thứ hai mà không xóa các chỉ mục hiện có:

wp wpml_elasticpress sync --post-type=post --post-lang=fr

Lặp lại cho mỗi ngôn ngữ bổ sung. Bỏ qua --setup để các ngôn ngữ đã được lập chỉ mục trước đó giữ nguyên.

Đồng bộ hóa nhiều ngôn ngữ trong một lần chạy:

wp wpml_elasticpress sync --post-lang=en,es

Điều chỉnh kích thước lô nếu thiếu bộ nhớ:

wp wpml_elasticpress sync --per-page=200

Kích thước lô mặc định là 350; việc giảm nó giúp ích trên các máy chủ bị hạn chế bộ nhớ.

Xây dựng lại mọi chỉ mục từ đầu:

wp wpml_elasticpress sync --setup

Lệnh này xóa mọi chỉ mục ngôn ngữ và xây dựng lại tất cả chúng. Sử dụng lệnh này khi có điều gì đó không đúng trên tất cả các ngôn ngữ hoặc sau một bản nâng cấp lớn.

Cách kiểm tra để các tìm kiếm ElasticPress trả về nội dung bằng đúng ngôn ngữ

Việc đồng bộ hóa kỹ thuật khá đơn giản; giá trị của trang này nằm ở phần xác minh. Hãy thực hiện các bước kiểm tra này sau khi quá trình đồng bộ hóa ban đầu hoàn tất và một lần nữa bất cứ khi nào bạn thay đổi nội dung hoặc các cài đặt ảnh hưởng đến hành vi tìm kiếm.

1. Tìm kiếm trả về kết quả cùng ngôn ngữ từ mỗi ngôn ngữ

Từ giao diện người dùng, lần lượt chuyển bộ chuyển đổi ngôn ngữ sang từng ngôn ngữ và tìm kiếm một thuật ngữ mà bạn biết là có tồn tại ở dạng đã dịch.

  • Đạt. Trang kết quả chỉ liệt kê các bài viết bằng ngôn ngữ đó.
  • Không đạt. Kết quả từ các ngôn ngữ khác xuất hiện cùng với các kết quả khớp có cùng ngôn ngữ. Quá trình đồng bộ hóa có thể chưa hoàn tất cho ngôn ngữ đó – hãy kiểm tra ElasticPress > Sync để xem có lỗi không và chạy lại lệnh WP-CLI dành riêng cho ngôn ngữ đó.

2. Nội dung chỉ có ngôn ngữ nguồn trả về không kết quả ở các ngôn ngữ khác

Chọn một bài viết chỉ tồn tại bằng ngôn ngữ mặc định của bạn – không có bản dịch ở các ngôn ngữ khác trên trang web. Từ phiên bản trang web không phải ngôn ngữ mặc định, hãy tìm kiếm một cụm từ trong bài viết đó.

  • Đạt. Không có kết quả nào. Bài viết không được dịch sang ngôn ngữ của khách truy cập, vì vậy nó không nên xuất hiện.
  • Không đạt. Bài viết xuất hiện trong kết quả. Điều này thường có nghĩa là loại bài viết được thiết lập để dự phòng bằng ngôn ngữ mặc định trong WPML > Cài đặt > Dịch loại bài viết. Đó là cài đặt ở cấp độ WPML, không phải lỗi. Nếu bạn không có ý định dự phòng, hãy thay đổi cài đặt.

Mở một bài viết đã dịch trên giao diện người dùng. Widget Related Posts chỉ nên liệt kê các bài viết khác bằng cùng một ngôn ngữ.

  • Đạt. Mọi bài viết liên quan đều liên kết đến nội dung bằng cùng ngôn ngữ với trang hiện tại.
  • Không đạt. Các bài viết liên quan từ các ngôn ngữ khác xuất hiện. Xác nhận tính năng Related Posts được bật trong ElasticPress > Features và chỉ mục ngôn ngữ cho ngôn ngữ hiện tại đã hoàn tất đồng bộ hóa.

Nếu tính năng Documents được bật trong ElasticPress: tải lên một tệp PDF đã dịch vào phiên bản ngôn ngữ nguồn của một bài viết, sau đó tải lên một tệp PDF có ngôn ngữ khác vào bản dịch của nó. Tìm kiếm một cụm từ chỉ xuất hiện trong tệp PDF đã dịch.

  • Đạt. Tìm kiếm từ giao diện người dùng có ngôn ngữ khớp trả về đúng tệp PDF; tìm kiếm bằng ngôn ngữ nguồn không trả về tệp PDF đã dịch và ngược lại.
  • Không đạt. Các tệp PDF từ các ngôn ngữ khác xuất hiện trong kết quả. Đồng bộ hóa lại sau khi bật Documents. Lệnh wp wpml_elasticpress sync --setup xây dựng lại mọi chỉ mục cùng với việc lập chỉ mục Document.

5. Các tìm kiếm ở trang quản trị (Terms, Comments, Users) lọc theo ngôn ngữ

Nếu bạn đã bật các tính năng Terms, Comments hoặc Users trong ElasticPress > Features, hãy tìm kiếm chúng từ trang quản trị WordPress và xác nhận kết quả được lọc theo ngôn ngữ quản trị hiện tại. Điều này ảnh hưởng đến những người dùng tìm kiếm trong trang quản trị của một trang web đa ngôn ngữ.

6. Đồng bộ hóa Multisite không xóa các chỉ mục của trang web anh em

Nếu bạn chạy WPML và ElasticPress trên một mạng multisite, hãy chạy đồng bộ hóa chỉ mục trên một trang web và sau đó kiểm tra các trang web khác trong mạng. Các chỉ mục của chúng vẫn phải còn nguyên vẹn.

  • Đạt. Việc lập chỉ mục một trang web không ảnh hưởng đến các chỉ mục của các trang web anh em.
  • Không đạt. Các chỉ mục anh em trống rỗng. Hãy dừng lại, chạy lại các quá trình đồng bộ hóa trên các trang web bị ảnh hưởng và báo cáo sự cố cho bộ phận hỗ trợ của WPML để họ có thể xác nhận xem bạn đang gặp phải sự cố multisite đã biết hay một sự cố mới.

Nếu mọi bước kiểm tra ở trên đều đạt, tìm kiếm đa ngôn ngữ của bạn đang hoạt động đúng như thiết kế.

Các tính năng ElasticPress được hỗ trợ

WPML ElasticPress hiện làm cho các tính năng ElasticPress sau đây nhận biết được ngôn ngữ:

  • Post Search. Tìm kiếm trên giao diện người dùng trên các bài viết, trang và các loại nội dung tùy chỉnh.
  • Related Posts. Widget các bài viết liên quan lọc theo các kết quả khớp có cùng ngôn ngữ.
  • Documents. Tìm kiếm bên trong các tệp PDF, .docx, .pptx và các loại tệp khác được đính kèm.
  • Terms, Comments, và Users. Các tìm kiếm ở trang quản trị.

Các tính năng tìm kiếm dành riêng cho WooCommerce của ElasticPress (khám phá sản phẩm, lọc sản phẩm theo khía cạnh, tìm kiếm sản phẩm tức thì trên các danh mục) hiện không hỗ trợ đa ngôn ngữ. Phạm vi hỗ trợ đa ngôn ngữ cho tìm kiếm WooCommerce đang nằm trong lộ trình phát triển của WPML; cho đến khi tính năng này ra mắt, tìm kiếm WooCommerce trên các trang web đa ngôn ngữ sẽ thông qua quy trình xử lý WooCommerce Multilingual tiêu chuẩn của WPML, chứ không phải qua ElasticPress.

Các cạm bẫy phổ biến

  • Đồng bộ hóa không chạy sau khi bật một tính năng ElasticPress mới. Việc bật Documents hoặc Related Posts trong ElasticPress > Features không tự động thêm các tài liệu đó vào chỉ mục. Hãy đồng bộ hóa lại sau khi chuyển đổi các tính năng.
  • Đồng bộ hóa WP-CLI mà không có --setup sau một thay đổi lớn. Nếu bạn đã thay đổi những loại bài viết nào có thể dịch, những tính năng nào được bật hoặc nâng cấp WPML ElasticPress qua một ranh giới phiên bản lớn, hãy chạy wp wpml_elasticpress sync --setup để xây dựng lại mọi chỉ mục từ đầu.
  • Mẫu kết quả tìm kiếm của giao diện bỏ qua các bộ lọc của ElasticPress. Một số giao diện tùy chỉnh triển khai truy vấn kết quả tìm kiếm của riêng chúng mà không đi qua ElasticPress. Nếu kết quả chỉ hiển thị sai trên giao diện người dùng (và vượt qua các bước kiểm tra ở trang quản trị), mẫu giao diện có thể cần được cập nhật.
  • Tìm kiếm sản phẩm WooCommerce trả về kết quả lẫn lộn ngôn ngữ. Đây không phải là sự cố đồng bộ hóa. Đó là khoảng trống về phạm vi hỗ trợ của WooCommerce đã đề cập ở trên. Hiện tại, hãy định tuyến tìm kiếm sản phẩm thông qua quy trình xử lý tiêu chuẩn của WooCommerce Multilingual.
  • Văn bản trong Documents không xuất hiện trong tìm kiếm. Xác nhận tính năng Documents đã được bật trong ElasticPress > Features và quá trình đồng bộ hóa đã chạy kể từ khi bật tính năng này.

Viết bởi Amir · Cập nhật lần cuối ngày 2 tháng 7 năm 2026

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