Tự động dịch bài viết WordPress với GPT và WPML
Quản lý các trang web đa ngôn ngữ thật sự là một thách thức lớn. Việc viết cùng một bài viết bằng nhiều ngôn ngữ khác nhau không chỉ tốn thời gian mà còn dễ gây ra lỗi. Vậy nếu WordPress có thể tự động dịch bài viết của bạn ngay khi bạn nhấn "Xuất bản" thì sao? Bài hướng dẫn này sẽ giúp bạn xây dựng một plugin WordPress kết nối WPML với GPT, tự động tạo ra các phiên bản dịch của nội dung.
✨ Những gì bạn sẽ học
- Cách tạo một plugin WordPress tùy chỉnh
- Cách hook vào hành động save_post
- Cách sử dụng APIs của WPML để quản lý các bản dịch
- Cách tích hợp GPT để dịch theo thời gian thực
🔧 Bước 1: Thiết lập cấu trúc plugin
Bên trong thư mục wp-content/plugins/, tạo một thư mục mới:
auto-gpt-translator/
Sau đó, thêm một tệp tin: auto-gpt-translator.php
<?php
/**
* Tên Plugin: Auto GPT Translator for WPML
* Mô tả: Tự động dịch các bài viết WordPress sang nhiều ngôn ngữ bằng cách sử dụng GPT và WPML.
* Phiên bản: 1.0
* Tác giả: Tên của bạn
*/
if ( ! defined( 'ABSPATH' ) ) exit;
class AutoGPTTranslator {
public function __construct() {
add_action('save_post', [$this, 'auto_translate_post'], 20, 2);
}
public function auto_translate_post($post_id, $post) {
if ( wp_is_post_revision($post_id) ) return;
$languages = apply_filters('wpml_active_languages', NULL, ['skip_missing' => 0]);
if (!$languages) return;
foreach ($languages as $lang => $details) {
if ($lang === apply_filters('wpml_default_language', NULL)) continue;
$this->translate_and_save($post_id, $post, $lang);
}
}
private function translate_and_save($post_id, $post, $lang) {
$translated_content = $this->call_gpt_translation($post->post_content, $lang);
$translated_title = $this->call_gpt_translation($post->post_title, $lang);
do_action('wpml_update_translated_post', [
'element_id' => $post_id,
'trid' => apply_filters('wpml_element_trid', NULL, $post_id, 'post_post'),
'language_code' => $lang,
'source_language_code' => apply_filters('wpml_default_language', NULL),
'post_content' => $translated_content,
'post_title' => $translated_title,
]);
}
private function call_gpt_translation($text, $target_lang) {
$api_key = get_option('auto_gpt_api_key');
if (!$api_key) return $text;
$response = wp_remote_post("https://api.openai.com/v1/chat/completions", [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => "Bearer $api_key",
],
'body' => json_encode([
'model' => 'gpt-4o-mini',
'messages' => [
['role' => 'system', 'content' => "Dịch đoạn văn sau sang $target_lang."],
['role' => 'user', 'content' => $text]
],
]),
]);
if ( is_wp_error($response) ) return $text;
$body = json_decode(wp_remote_retrieve_body($response), true);
return $body['choices'][0]['message']['content'] ?? $text;
}
}
new AutoGPTTranslator();
🔧 Bước 2: Thêm trang cài đặt
Chúng ta cần một trang quản trị đơn giản nơi bạn có thể dán khóa API OpenAI của mình. Tạo settings.php trong thư mục plugin:
<?php
add_action('admin_menu', function() {
add_options_page(
'Auto GPT Translator',
'Auto GPT Translator',
'manage_options',
'auto-gpt-translator',
'auto_gpt_translator_settings_page'
);
});
add_action('admin_init', function() {
register_setting('auto_gpt_translator_settings', 'auto_gpt_api_key');
});
function auto_gpt_translator_settings_page() {
?>
<div class="wrap">
<h1>Cài đặt Auto GPT Translator</h1>
<form method="post" action="options.php">
<?php settings_fields('auto_gpt_translator_settings'); ?>
<?php do_settings_sections('auto_gpt_translator_settings'); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">Khóa API OpenAI</th>
<td><input type="text" name="auto_gpt_api_key" value="<?php echo esc_attr(get_option('auto_gpt_api_key')); ?>" style="width: 400px;"/></td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php
}
⚙️ Bước 3: Cách hoạt động
- Bạn xuất bản một bài viết bằng ngôn ngữ mặc định của WPML.
- Plugin phát hiện tất cả các ngôn ngữ đang hoạt động khác.
- Đối với mỗi ngôn ngữ, nó gửi tiêu đề và nội dung bài viết đến GPT.
- WPML tự động lưu các phiên bản dịch mới.
🔒 Thực tiễn bảo mật tốt nhất
- Luôn sử dụng
esc_attr()vàsanitize_text_field()khi lưu cài đặt. - Xác thực phản hồi API bằng cách sử dụng
is_wp_error(). - Cân nhắc thêm giới hạn tỷ lệ để tránh lạm dụng API.
- Không bao giờ mã hóa khóa API của bạn trong plugin.
🚀 Những gì bạn đã xây dựng
Bạn đã có một plugin WordPress sẵn sàng cho sản xuất, với các tính năng:
- Tự động dịch bài viết bằng GPT
- Tích hợp liền mạch với WPML
- Quản lý các bản dịch mà không cần sao chép và dán thủ công
🏁 Kết luận
Với plugin này, bạn có thể tiết kiệm thời gian và nỗ lực khi quản lý các bài viết đa ngôn ngữ trên trang WordPress của mình. Hãy bắt đầu ngay hôm nay và để GPT giúp bạn tự động hóa quy trình dịch thuật!
❓ Câu hỏi thường gặp
1. Tôi có thể sử dụng plugin này cho các ngôn ngữ nào?
Plugin hỗ trợ tất cả các ngôn ngữ mà WPML cung cấp.
2. Có thể sử dụng GPT miễn phí không?
Hiện tại, bạn cần một khóa API OpenAI để sử dụng GPT.
3. Plugin có tương thích với các phiên bản WordPress mới không?
Plugin được thiết kế để tương thích với các phiên bản WordPress mới nhất.
4. Làm thế nào tôi có thể báo cáo lỗi hoặc đề xuất tính năng?
Bạn có thể liên hệ với tác giả plugin thông qua trang cài đặt hoặc trực tiếp qua email.
🔗 Tài nguyên tham khảo
Hãy thử nghiệm và chia sẻ trải nghiệm của bạn với cộng đồng phát triển WordPress Việt Nam!