Cách nhập nội dung đa ngôn ngữ vào WordPress – WooCommerce, CSV và XML
Tìm hiểu cách nhập hàng loạt nội dung đa ngôn ngữ vào WordPress. WPML gán đúng ngôn ngữ cho mỗi hàng và liên kết các bản dịch giữa các ngôn ngữ. Hướng dẫn này bao gồm danh mục sản phẩm WooCommerce, danh sách bất động sản, nguồn cấp dữ liệu sự kiện và bất kỳ quá trình nhập nội dung nào dựa trên bảng tính.
WPML Export and Import hoạt động cùng với plugin nhập của WordPress mà bạn đang sử dụng. Plugin nhập sẽ di chuyển dữ liệu của bạn. WPML Export and Import thêm thông tin ngôn ngữ vào bước cuối cùng để mỗi hàng nằm đúng ngôn ngữ và mỗi bản dịch liên kết với nguồn của nó.
Trước khi bạn bắt đầu
Cài đặt và kích hoạt các plugin này trên trang web mà bạn đang nhập vào:
- Một plugin nhập: WP All Import Pro, WP All Export Pro, trình nhập CSV gốc của WooCommerce, hoặc trình nhập WordPress tiêu chuẩn.
- WPML và WPML Dịch Chuỗi.
- WPML Export and Import (tiện ích bổ sung mà trang này đề cập).
- WPML Multilingual & Multicurrency for WooCommerce nếu bạn đang nhập các sản phẩm WooCommerce.
Trên trang web nhập, hãy thiết lập WPML với mọi ngôn ngữ bạn dự định nhập. Các ngôn ngữ đích phải tồn tại sẵn trong WPML > Cài đặt > Ngôn ngữ trước khi bạn chạy quá trình nhập.
Hai hướng đi – Chọn hướng phù hợp với nguồn của bạn
Có hai hướng nhập, tùy thuộc vào nơi dữ liệu đa ngôn ngữ xuất phát:
- Plugin nhập được hỗ trợ. Nếu bạn đang chuyển nội dung ra khỏi một trang web WordPress hiện có bằng WP All Export Pro (hoặc một công cụ xuất được hỗ trợ khác), WPML Export and Import đã có sẵn trong tệp xuất – thông tin ngôn ngữ được bao gồm tự động. Bỏ qua và chuyển đến bước Chạy WPML Import bên dưới.
- CSV hoặc XML tùy chỉnh. Nếu bạn duy trì dữ liệu đa ngôn ngữ trong một bảng tính hoặc nguồn của bạn là một hệ thống không phải WordPress (PIM, MLS, ERP, nền tảng đặt chỗ), bạn sẽ thêm thủ công ba cột ngôn ngữ vào tệp của mình. Tiếp tục với bước Chuẩn bị CSV hoặc XML của bạn bên dưới.
Chuẩn bị CSV hoặc XML của bạn với ba cột ngôn ngữ
Đối với các quá trình nhập tùy chỉnh, hãy thêm ba cột vào mỗi hàng trong bảng tính của bạn. Đây là cách WPML ghép nối các bản dịch với nhau và gắn thẻ mỗi hàng với đúng ngôn ngữ:
_wpml_import_translation_group. Một giá trị duy nhất được chia sẻ bởi tất cả các phiên bản ngôn ngữ của một phần nội dung. Đối với sản phẩm, hãy sử dụng SKU. Đối với mọi thứ khác, hãy tạo ID của riêng bạn và sử dụng lại nó cho hàng nguồn và mỗi bản dịch của nó._wpml_import_language_code. Mã ngôn ngữ ISO cho hàng (encho tiếng Anh,escho tiếng Tây Ban Nha,frcho tiếng Pháp,pt-ptcho tiếng Bồ Đào Nha châu Âu, v.v.)._wpml_import_source_language_code. Chỉ trên các hàng bản dịch; mã ngôn ngữ của bản gốc. Để trống đối với các hàng ngôn ngữ nguồn.
Đối với WP All Import Pro và các công cụ tương tự, hãy chuẩn bị hai bảng tính: một cho các phân loại (danh mục, thẻ, danh mục sản phẩm), một cho bài viết và sản phẩm. Trình nhập CSV gốc của WooCommerce chỉ cần một bảng tính duy nhất vì các danh mục sản phẩm nằm bên trong các hàng sản phẩm.
Thuộc tính WooCommerce tùy chỉnh cho các sản phẩm có biến thể
Nếu bạn có các sản phẩm có biến thể với các thuộc tính tùy chỉnh, hãy thêm cột thứ tư vào các hàng sản phẩm đã dịch: _wpml_import_wc_local_attribute_labels. Giá trị là một đối tượng JSON gồm các cặp slug:translation. Đối với một sản phẩm có biến thể bằng tiếng Pháp với các thuộc tính Size và Color:
{"size":"Taille","color":"Couleur"}
Slug là tên thuộc tính viết thường với các khoảng trắng được thay thế bằng dấu gạch ngang.
Thứ tự nhập
Luôn nhập các phân loại trước nếu bạn có một tệp riêng cho chúng. Các danh mục, thẻ và bất kỳ phân loại nào khác cần phải tồn tại trước khi bài viết và sản phẩm có thể tham chiếu đến chúng. Sau đó nhập bài viết, trang, sản phẩm và các loại nội dung khác.
Nếu bạn chia nhỏ dữ liệu của mình thành một tệp cho mỗi ngôn ngữ, hãy nhập mọi tệp ngôn ngữ trước khi chạy bước kết nối của WPML.
Ánh xạ các cột ngôn ngữ trong plugin nhập của bạn
Mỗi plugin nhập xử lý các cột tùy chỉnh theo cách riêng của nó. Bước quan trọng là ánh xạ ba cột của WPML với các trường tùy chỉnh (hoặc meta phân loại, đối với các phân loại). Trong WP All Import Pro, điều này diễn ra ở Bước 3 của trình hướng dẫn nhập:
- Đối với bài viết và sản phẩm. Mở Trường tùy chỉnh, thêm ba trường, kéo các cột ngôn ngữ vào các hộp Value và sử dụng tên cột không có dấu ngoặc vuông trong các hộp Name.
- Đối với các phân loại. Mở Meta phân loại, thêm ba trường meta phân loại và ánh xạ các cột ngôn ngữ theo cách tương tự.
Nếu các cột không được ánh xạ, WPML sẽ không có gì để đọc khi bạn chạy bước kết nối.
Những gì bạn sẽ thấy giữa quá trình nhập và bước kết nối
Cho đến khi bạn chạy WPML Export and Import, tất cả nội dung được nhập đều nằm dưới ngôn ngữ mặc định của bạn và WPML tự động giữ các bài viết và sản phẩm ở trạng thái Bản nháp để ngăn nội dung lẫn lộn ngôn ngữ hiển thị trên front-end. Đây là trạng thái tạm thời như dự kiến, không phải là dấu hiệu của việc nhập thất bại.
Đối với các plugin nhập không được hỗ trợ, bạn sẽ cần xuất bản các bài viết theo cách thủ công sau khi bước kết nối hoàn tất.
Chạy WPML Import
Sau khi plugin nhập đã hoàn tất:
- Mở WPML > Export and Import trong trang quản trị WordPress.
- Nhấp vào Run WPML Import.
WPML đọc các cột ngôn ngữ của mỗi hàng, gán ngôn ngữ cho hàng đó và liên kết các bản dịch với nguồn của chúng. Trên các danh mục lớn, quá trình này có thể mất vài phút. Khi hoàn tất, nội dung đã nhập của bạn được xuất bản bằng đúng ngôn ngữ với mọi bản dịch được kết nối với nguồn của nó.
Kiểm tra ngẫu nhiên trên back-end và front-end:
- Mở danh sách loại bài viết hoặc sản phẩm – xác nhận mỗi hàng hiển thị dưới đúng cờ ngôn ngữ.
- Truy cập giao diện người dùng và chuyển đổi ngôn ngữ – mỗi trang đã dịch sẽ tải phiên bản đã dịch của nó, không quay lại bản nguồn.
Nếu một bản dịch phân loại không liên kết được, hãy mở thuật ngữ đó trong trang quản trị WordPress và sử dụng hộp Ngôn ngữ của thuật ngữ để kết nối nó với thuật ngữ ngôn ngữ mặc định.
Tự động hóa – Chạy WPML Import sau mỗi lần nhập theo lịch trình
Đối với các quá trình đồng bộ hóa hàng đêm, nguồn cấp dữ liệu của nhà cung cấp hoặc bất kỳ quá trình nhập theo lịch trình nào, bước kết nối của WPML có thể chạy tự động ngay sau khi plugin nhập hoàn tất. Có ba cách để kết nối điều này:
Tùy chọn 1 – Điểm cuối POST (dành cho các quá trình nhập chạy bằng Cron như WP All Import Scheduled Actions)
Đây là cách được khuyến nghị. Thêm một khóa bí mật mạnh vào wp-config.php:
define( 'WPML_IMPORT_KEY', 'your-strong-secret-key-here' );
Sau đó, thêm lệnh thứ hai vào thiết lập nhập theo lịch trình của bạn. Nó sẽ gửi một yêu cầu POST đến trang web của bạn và truyền khóa trong phần thân yêu cầu:
curl -X POST https://yoursite.com/ \
-d 'wpml_import_trigger=your-strong-secret-key-here'
Cuộc gọi tương tự với wget:
wget -q -O - \
--post-data='wpml_import_trigger=your-strong-secret-key-here' \
https://yoursite.com/
Đối với tính năng lên lịch thủ công của WP All Import Pro, hãy thêm một trong hai lệnh ngay sau lệnh nhập.
Khi bước kết nối chạy, trang web của bạn sẽ trả lời với trạng thái 200 và thông báo này:
Import process completed
Hai câu trả lời khác cho bạn biết điều gì đã xảy ra: 401 có nghĩa là khóa không khớp và 204 có nghĩa là không còn gì để xử lý.
Tùy chọn 2 – Điểm cuối URL (Không còn được dùng)
Trước WPML Export and Import 1.2.0, bạn đã truyền khóa trong URL:
https://yoursite.com/?wpml_import_trigger=your-strong-secret-key-here
URL này vẫn hoạt động, vì vậy các cron job hiện tại của bạn vẫn tiếp tục chạy. Nó không còn được dùng nữa và WPML sẽ xóa nó trong phiên bản phát hành chính tiếp theo.
Lý do là khóa bí mật. Một URL sẽ đi qua nhật ký máy chủ, lịch sử trình duyệt và phân tích, và khóa của bạn cũng đi cùng với nó. Một yêu cầu POST sẽ giữ khóa trong phần thân yêu cầu. Hãy chuyển các quá trình nhập theo lịch trình của bạn sang cuộc gọi POST trong Tùy chọn 1.
Tùy chọn 3 – Action hook (dành cho các quá trình nhập được lên lịch bằng PHP)
Nếu bạn đang lên lịch nhập từ PHP bằng Action Scheduler hoặc wp_schedule_single_event, hãy kích hoạt bước WPML bằng một cuộc gọi action:
do_action( 'wpml_import_process' );
Để chạy nó dưới dạng một tác vụ nền một lần ngay sau hành động nhập của bạn:
wp_schedule_single_event( time(), 'wpml_import_process' );
Nếu có gì đó thất bại ở bất kỳ hướng nào trong số này, hãy bật WP_DEBUG_LOG trong wp-config.php để ghi lại lỗi trong nhật ký lỗi PHP.
Chạy WPML Import từ dòng lệnh
Đối với các tập lệnh triển khai, bản dựng container hoặc bất kỳ quy trình nào mà giao diện người dùng quản trị không khả dụng, hãy chạy bước kết nối từ WP-CLI:
wp wpml import process
Lệnh này báo cáo có bao nhiêu bản dịch đã được kết nối. Đây là sự thay thế trực tiếp cho nút Run WPML Import.
Những cạm bẫy phổ biến
- Tệp nhập thiếu ba cột ngôn ngữ. Nội dung được nhập nhưng sẽ nằm dưới dạng các hàng ngôn ngữ nguồn không được gắn thẻ; Run WPML Import không có gì để kết nối. Cách khắc phục: thêm các cột vào dữ liệu nguồn của bạn, xuất lại và nhập lại.
- Việc ánh xạ Trường tùy chỉnh / Meta phân loại của WP All Import đã bị bỏ qua. Tương tự như việc thiếu cột. Dữ liệu có trong tệp nhưng plugin nhập không lưu trữ nó trên bài viết. Chạy lại quá trình nhập với các trường đã được ánh xạ.
- Các ngôn ngữ đích chưa được thiết lập trên trang web nhập. Các hàng được nhập cho một ngôn ngữ chưa được cấu hình sẽ nằm ở ngôn ngữ mặc định. Thêm các ngôn ngữ bị thiếu tại WPML > Cài đặt > Ngôn ngữ trước, sau đó chạy lại.
- Plugin nhập không được hỗ trợ. Các bài viết được nhập vẫn ở trạng thái Bản nháp sau bước kết nối. Xuất bản chúng theo cách thủ công hoặc chuyển sang một plugin được hỗ trợ.
- Các tập lệnh nhập tùy chỉnh không truyền dữ liệu ngôn ngữ qua. Cách khắc phục nằm ở cấp độ tập lệnh. Ba cột ngôn ngữ (và cột thuộc tính WooCommerce nếu có) cần phải đến được hàng.
Nếu quá trình nhập liên tục gặp phải cùng một vấn đề, nhóm hỗ trợ của WPML sẽ giải đáp các câu hỏi về việc nhập 24/7.
Nếu bạn đang tìm kiếm plugin WPML All Import
WPML All Import là plugin cũ có trước WPML Export and Import. Nó không còn được hỗ trợ hoặc khuyến nghị. Quy trình trên là cách cập nhật nhất để nhập nội dung đa ngôn ngữ vào một trang web WordPress – hãy sử dụng nó thay vì bất kỳ quy trình làm việc nào được mô tả trong tài liệu của plugin cũ.
Được viết bởi Amir · Cập nhật lần cuối vào 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