WordPressの多くのテーマがハードコード化されたリンクを持っています。 例えば、サポートやお問い合わせのページへ案内するフッターリンクは以下のように見えます。

<a href="/support/">Support</a> | <a href="/contact-us/">Contact us</a>

サイトがマルチ言語の場合、これらのリンクは表示言語に適応しなくてはなりません。 リンクのテキスト(ビジターが読むもの)とURL(リンクの行き先))は言語を変える時、変更されなくてはなりません。

WPMLの icl_link_to_element() 機能は現地語化したページのリンクを創るため、この目的に使用できます。

機能の説明

icl_link_to_element(ID, タイプ、テキスト、引数、アンカー);

引数 内容 必要/オプション
ID 投稿文、ページ、タグ、リンクへのカテゴリーなどのID 必要
タイプ リンクするページのタイプ。 「投稿文」、「ページ」、「タグ」、「カテゴリー」などがあります。 オプション、初期設定は「ページ」。
テキスト リンクのテキスト。特定されていなければ、現在の言語により要素の名前をつけます。 オプション、初期設置は要素の名前。 初期設定のままにするには false を入力します。
引数 リンクのためのオプションの引数。 使用される場合、これはPHP配列であるべきです。 オプション、初期設定は引数なし。
アンカー リンクのためのオプションのアンカー。 オプション、初期設定はアンカーなし。

使用例

目的 作成されたHTML
<?php icl_link_to_element(10); ?> ページ10へのリンク (サポートページ) <a href="/support/">Support</a>
<?php icl_link_to_element(10,__(‘Get help’)); ?> テキストリンクが付いたサポートページへのリンク <a href="/support/">Get help</a>
<?php icl_link_to_element(10,false, array(‘category’=>’products’,’priority’=>’high’); ?> サポートページへのリンクと二つの引数追加 <a href="/support/?category=products&amp;priority=high">Support</a>
<?php icl_link_to_element(10,false,false,’priority’=>’high’,’faq’); ?>
<?php icl_link_to_element(3,’tag’); ?> ID 3付きタグへのリンク <a href="/tag/news/">News</a>

動作の仕方

どの言語でもページ/投稿文/タグ/カテゴリーのIDを特定することができます。 WPMLは現在の言語に翻訳が存在するかかどうか調べます。 存在すればそれにリンクを作ります。 翻訳が無ければ、もとの言語のページにリンクが作られます。

リンクテキストをマニュアルで特定する際、、gettext 呼び出しの __(), で取り囲み、正しい言語でテキストを表示することを確認した方が良いでしょう。 リンクテキストを特定しない場合(初回の例のように)、WPMLがそのページの名前を作ります。