WordPressテーマ開発におけるText Domainと翻訳対応の基礎

WordPressテーマを配布・公開する場合、多言語対応は避けて通れない重要な要素です。
その中核となるのが Text Domain(テキストドメイン) と翻訳関数の正しい使い方です。
本記事では、WordPressテーマ開発におけるText Domainの役割から、翻訳対応の基本実装、注意点までを体系的に解説します。
初学者でも理解できるよう、基礎を丁寧に整理しています。
Contents
Text Domainとは何か
Text Domainの役割
Text Domainとは、翻訳文字列を識別するための一意な名前です。
WordPressは、このText Domainをもとに、どのテーマ・プラグインの翻訳ファイルを読み込むかを判断します。
つまり、Text Domainが正しく設定されていなければ、翻訳ファイルが存在しても文字列は翻訳されません。
テーマ開発におけるText Domainの位置づけ
WordPressテーマでは、以下のような場面でText Domainが使われます。
- PHPファイル内の表示テキスト
- 管理画面向けの文言
- ウィジェットやカスタマイザーのラベル
これらの文字列を翻訳可能にすることで、テーマの汎用性と品質が向上します。
Text Domainの命名ルール
基本ルール
Text Domainには、以下のルールがあります。
- テーマのディレクトリ名と同じ名前にする
- 半角英数字とハイフンを使用
- 大文字は使わない
例:
my-themeこの名前が、翻訳関数や翻訳ファイルの基準になります。
style.cssとの関係
style.css のヘッダーコメントには、Text Domainを明示的に指定します。
/*
Theme Name: My Theme
Text Domain: my-theme
*/ここで指定したText Domainと、PHPファイル内のText Domainは必ず一致させる必要があります。
翻訳対応の基本となる関数
よく使われる翻訳関数
WordPressでは、以下の翻訳関数が基本となります。
__():翻訳された文字列を返す_e():翻訳された文字列をそのまま出力する_x():文脈を指定して翻訳するesc_html__():HTMLエスケープ付きで翻訳するesc_attr__():属性値向けに翻訳する
実装例
<h1><?php echo esc_html__( '記事一覧', 'my-theme' ); ?></h1>このように、必ずText Domainを第2引数に指定します。
翻訳ファイル(.po / .mo)の仕組み
翻訳ファイルの種類
翻訳対応では、以下のファイルが使われます。
.po:人が編集する翻訳ファイル.mo:WordPressが読み込むバイナリファイル
通常、翻訳作業は .po ファイルで行い、.mo に変換して使用します。
languagesディレクトリの配置
テーマ内には、以下のように languages ディレクトリを用意します。
my-theme/
├─ languages/
│ ├─ my-theme-ja.po
│ └─ my-theme-ja.mo翻訳ファイルの読み込み設定
functions.phpでの設定
翻訳を有効化するには、functions.php に以下を記述します。
function my_theme_setup() {
load_theme_textdomain(
'my-theme',
get_template_directory() . '/languages'
);
}
add_action( 'after_setup_theme', 'my_theme_setup' );この設定により、WordPressがテーマの翻訳ファイルを正しく読み込みます。
翻訳対応でよくある注意点
ハードコーディングを避ける
以下のような書き方は翻訳されません。
<h2>お問い合わせ</h2>翻訳対応では、必ず翻訳関数を通します。
<h2><?php echo esc_html__( 'お問い合わせ', 'my-theme' ); ?></h2>Text Domainの不一致
style.css- 翻訳関数
- 翻訳ファイル名
これらのText Domainが一致していない場合、翻訳は機能しません。
なぜ翻訳対応が重要なのか
翻訳対応は、多言語サイトのためだけの機能ではありません。
- WordPress公式ディレクトリの品質基準を満たす
- 将来的な仕様変更や拡張に強くなる
- 再利用性の高いテーマ設計につながる
結果として、保守性・拡張性に優れたテーマ開発が可能になります。
まとめ
- Text Domainは翻訳対応の中核となる識別子
- テーマ名と一致させることが基本
- 翻訳関数と翻訳ファイルの連携が重要
- 初期段階から翻訳対応を前提に設計することが望ましい
Text Domainと翻訳対応を正しく理解することで、WordPressテーマ開発の完成度は大きく向上します。

