【ITニュース解説】Auto-Translate WordPress Posts with GPT + WPML (Build Your Own Plugin)
2025年09月08日に「Dev.to」が公開したITニュース「Auto-Translate WordPress Posts with GPT + WPML (Build Your Own Plugin)」について初心者にもわかりやすいように丁寧に解説しています。
ITニュース概要
WordPressで自作プラグインを作成し、多言語化プラグインWPMLとGPTを連携させる方法。記事を公開すると、設定した他の言語へGPTが自動で翻訳し、WPMLが翻訳済みコンテンツとして保存する仕組みを解説する。(116文字)
ITニュース解説
Webサイトを多言語で運営することは、グローバルな情報発信において重要だが、コンテンツ管理の負担が大きいという課題がある。特に、同じ内容の記事を複数の言語で作成・更新する作業は、時間とコストを要する。この課題を解決するため、大規模言語モデルであるGPTを活用し、WordPressサイトの記事を自動で翻訳する技術が注目されている。具体的には、WordPressのプラグインを自作し、多言語化プラグインであるWPMLとOpenAIのGPT APIを連携させることで、記事を公開すると同時に自動的に翻訳版を生成する仕組みを構築する方法が提案されている。このアプローチは、手動での翻訳作業を大幅に削減し、多言語サイトの運営効率を劇的に向上させる可能性を秘めている。
この自動翻訳システムの中心となるのは、自作のWordPressプラグインである。WordPressは「プラグイン」と呼ばれる拡張機能を追加することで、標準にはない様々な機能を実現できる。このプラグインは、WordPressの「アクションフック」という仕組みを利用して動作する。アクションフックとは、WordPressの特定の処理、つまりイベントが発生したタイミングで、独自のプログラムを割り込ませて実行させるための仕組みである。今回利用するのは「save_post」というフックで、これは記事がデータベースに保存または公開された直後に作動する。このタイミングを捉え、自動翻訳の処理を開始することが、このシステムの根幹をなす。
プラグインの具体的な処理の流れは以下のようになる。まず、ユーザーが記事を保存または公開するとsave_postフックが作動し、プラグインに定義された翻訳処理関数が呼び出される。この関数は、はじめに多言語化プラグインWPMLが提供するAPIを利用して、そのサイトで有効化されている言語の一覧を取得する。そして、サイトのデフォルト言語以外のすべての言語に対して、翻訳処理を一つずつ実行するためのループ処理を開始する。各言語のループ内では、元の記事のタイトルと本文テキストを、OpenAIが提供するGPTのAPIに送信する。APIとは、ソフトウェアやサービスが外部と連携するための窓口となるインターフェースのことである。APIリクエストには、「このテキストを〇〇語に翻訳してください」という具体的な指示(プロンプト)と、翻訳対象のテキストが含まれる。APIリクエストの送信には、WordPressの標準関数であるwp_remote_postが使用される。これは外部のサーバーとHTTP通信を行うための関数で、APIキーを含むヘッダー情報や、JSON形式にエンコードされたリクエスト内容を送信する役割を担う。GPT APIから翻訳済みのテキストが返されると、プラグインは再びWPMLのAPIを利用して、その翻訳結果をWordPressに保存する。wpml_update_translated_postというアクションフックを通じて、元の記事と関連付けられた翻訳記事として、翻訳されたタイトルと本文を更新・保存する。これにより、一つの記事を公開するだけで、設定されたすべての言語の翻訳記事が自動的に作成されるという一連の処理が完結する。
この仕組みを機能させるためには、OpenAIのAPIキーが必要になる。APIキーは外部サービスを利用するための認証情報であり、第三者に漏洩すると不正利用される危険性があるため、厳重な管理が求められる。そのため、プラグインのソースコード内に直接APIキーを記述する、いわゆるハードコーディングは避けなければならない。代わりに、WordPressの管理画面に専用の設定ページを作成し、そこから安全にAPIキーを保存する方法が推奨される。WordPressにはadd_options_pageやregister_settingといった関数が用意されており、これらを使うことで簡単かつ安全に設定項目を追加できる。ユーザーが入力した値はデータベースに保存され、プラグインはget_option関数でその値を呼び出して使用する。また、外部APIとの通信時にはエラーハンドリングが不可欠である。通信が失敗した場合や、APIから予期せぬ応答が返ってきた場合に備え、is_wp_error関数などでエラーを検知し、処理を中断するなどの対策を講じることが、安定したシステムを構築する上で重要となる。
このように、WordPressのフックシステム、外部APIとの連携、そして多言語化プラグインのAPIを組み合わせることで、高度な自動化機能を持つプラグインを開発することができる。この開発事例は、単に便利なツールを作るだけでなく、システムエンジニアを目指す初心者にとって、実践的な開発スキルを学ぶ絶好の機会となる。WordPressプラグインの基本的な構造、イベント駆動型のプログラミング、外部サービスとのAPI連携、そしてセキュリティを考慮した実装方法など、Web開発における重要な要素が凝縮されている。この技術を理解し応用することで、Webサイトの機能拡張や業務効率化に貢献する、より価値の高いシステム開発が可能になるだろう。