WPML

WPMLを使用して、プラグインやテーマのショートコード、および独自に開発したショートコードを翻訳する方法を説明します。

WPMLでは、テキストベースとIDベースの両方のショートコードを翻訳できます。テキストベースのショートコードは、以下のようにテキストを出力します。

[goodmorning name="Dear client"]

一方、IDベースのショートコードは、ID番号を使用して要素を出力します。

[myslider id="1"]
[myslider id="2"]

ここでは、各ショートコードが異なるスライダーを出力しています。たとえば、1つは英語のスライダーを出力し、もう1つはスペイン語のスライダーを出力します。

ショートコードを翻訳するには、一方のスライダーのIDをもう一方のIDに置き換えます(例:1 → 2)。

互換性のあるプラグインとテーマのショートコードの翻訳

互換性のあるプラグインテーマのショートコードを翻訳するには、WPML翻訳ダッシュボードに移動し、ショートコードを含むページを翻訳に送信します。ショートコードは、ページの他のコンテンツとともに高度な翻訳エディタに表示されます。

たとえば、以下のショートコードはエディタで次のように表示されます。

[goodmorning name="Dear client"]
高度な翻訳エディタでのテキストベースのショートコードの翻訳
高度な翻訳エディタでのテキストベースのショートコードの翻訳

ショートコードにリンク(URL)属性が含まれている場合は、検索バーを使用して検索します。WPMLはデフォルトでショートコード内のリンクを非表示にします。

高度な翻訳エディタでのショートコードのリンク属性の翻訳
高度な翻訳エディタでのショートコードのリンク属性の翻訳

互換性のないプラグインとテーマのショートコードの翻訳

互換性のないプラグインやテーマのショートコードを翻訳するには、まずWPMLのカスタム XML 設定ファイルにそれらを登録する必要があります。

2つのショートコードを含む以下の例を考えてみましょう。

[fanpage link="https://example.com"]Some content[/fanpage]
[goodmorning name="dear client" type="official"]

これらのショートコードをWPMLに登録するには、以下の設定コードを使用します。

<wpml-config>
  <shortcodes>
    <shortcode>
      <tag>goodmorning</tag>
      <attributes>
        <attribute>name</attribute>
        <attribute>type</attribute>
      </attributes>
    </shortcode>
    <shortcode>
      <tag label="Fanpage shortcode">fanpage</tag>
      <attributes>
        <attribute>link</attribute>
      </attributes>
    </shortcode>
  </shortcodes>
</wpml-config>

WPMLでの設定の仕組みは以下のとおりです。

  • すべてのショートコードを<shortcodes>内に配置します。
  • 個々のショートコード設定を<shortcode>で囲みます。
  • <tag>でショートコード名を定義し、必要に応じてカスタムラベルを含めます。これらのラベルは、高度な翻訳エディタでテキストの横に表示されます。
  • <attribute>で各属性のタイトルを定義します。
  • すべての属性を<attributes>で囲みます。

ショートコードを登録すると、WPML翻訳ダッシュボードからページの他のコンテンツと一緒に翻訳できるようになります。

カスタムショートコードの翻訳

独自に開発したカスタムショートコードを翻訳するには、まずWPMLに登録する必要があります。完了すると、ページの他のコンテンツと一緒に翻訳できるようになります。

ショートコード内のハードコードされたテキストの翻訳

デフォルトでは、ハードコードされたテキストはWPMLで翻訳できません。これらを翻訳可能にするには、Gettextフレームワークを使用できます。「Good morning」がハードコードされたテキストである以下の例を考えてみましょう。

function goodmorning_att($atts) {
    $default = array(
        'name' => 'there',
    );
    $a = shortcode_atts($default, $atts);
    return 'Good morning, '.$a['name'];
}
add_shortcode('goodmorning', 'goodmorning_att');

「Good morning」を翻訳可能にするには、Gettextを使用するようにコードを調整します。

function goodmorning_att($atts) {
    $default = array(
        'name' => 'there',
    );
    $a = shortcode_atts($default, $atts);
    return __('Good morning, ', 'default').$a['name'];
}
add_shortcode('goodmorning', 'goodmorning_att');

これにより、「Good morning」というテキストが翻訳可能になり、文字列翻訳に登録されます。

追加リソース

wpml-config.xmlファイルの詳細については、言語設定ファイルのガイドをご覧ください。WPMLの他の要素の設定については、以下の追加ガイドを参照してください。

執筆者:Amir · 最終更新日:2025年7月23日