WordPress 多言語サイトでget_bloginfo() を活用する

WordPressから WPMLPolylang同じプラグインを使用すると、簡単多言語サイトを構築することができます。

WordPressで、最初のページの場合、通常index.phpファイルを使用している場合があります。 この場合Polylangなどのプラグインを使用すると、言語に応じて、最初のページが必要に応じて表示されない場合があります。 たとえば、有料のテーマでは、最初のページ(Home)にカテゴリ別に表示する場合は、言語ごとに調整するのが容易ではない可能性があります。 この場合、簡単な解決策は、言語ごとに別のフロントページを設定することです。 例えば、index.phpファイルを言語ごとに若干変形してpage-english.php、page-korean.phpテンプレートを作成する方法を考えてみることができます。 (言語ごとにテンプレートを作成する 参考)

しかし、上記のような方法を使用する場合でも、カテゴリページなど、いくつかのページは、制御することができません。 たとえば、次のように言語別カテゴリに該当する言語の特定のフレーズを出力したい場合があります。
Category per language in wordpress
上記の場合、英語のカテゴリページとハングルカテゴリーページのカテゴリータイトルに書か数を表示しています。 上記のようにハングルと英語のカテゴリーページ、それぞれのカテゴリーのタイトルフレーズを変えたい場合は、カテゴリーがいくつかの犬されない場合 is_category()を使用して言語ごとに制御することができます。

しかし、カテゴリーが多かったり、頻繁に変更される場合には、面倒な場合があります。 そして、フロントページ(ホームページ)を言語別に個々のページを使用せずにindex.phpページをそのまま使用することをお勧めすることもできます。 この場合に使用することができます WordPress 組み込み関数が 取得する_bloginfo()です。 get_bloginfo() にはさまざまなパラメータを使用できます。 私たちが望むパラメータは「言語」です。 次のようにget_bloginfo('language') を使用すると、言語ごとに制御が可能です。

<?php if( get_bloginfo('language') == 'en-US' ) : ?>

// 영어 버전용 코드

<?php elseif( get_bloginfo('language') == 'ko-KR' ) : ?>

// 한국어 버전용 코드 

<?php else: ?>

// 기타 언어용 버전용 코드 

<?php endif; ?>

言語別言語コード(例:en-US、ko-KR)が何なのかよくわからない場合は

echo get_bloginfo('language');

コードを挿入してテストしてみるとされます。

そしてget_bloginfo('language') コードを要素に表示するように追加すると、CSS を使用して言語別にレイアウトを異なるように整理することが容易になります。

取得する_bloginfo() の詳細については WordPress Codexページを参照してください。


メモ: Polylangのような無料のプラグインは、個人が開発して運営するため、いつでもアップデートが中断されることがあります。 実際、別の無料の多言語プラグインqTranslate XはqTranslateが中断されたことを、他のメーカーが受け継いで開発されたものです。 より安定的に多言語を運営したり、企業の場合、有料のプラグインである WPMLを考慮してください。 ちなみに、下のバナーをクリックしてWPMLを購入した場合、私は7ドル(Multilingual Blog バージョン)/20ドル(Multilingual CMSバージョン)を受け取ることができます。 広報かどうかを離れて多くのユーザーが使用しており、WooCommerceなどもサポートしています。

多言語 WordPress


一部の記事にはアフィリエイトリンクが含まれている場合があり、パートナーの活動で一定額の手数料を受け取ることがあります。

7のコメント

  1. 本当に有用な内容ありがとうございます!

    polylangプラグインを適用したindexページからも悩みでした!

    私は4カ国語を適用する必要がする。
    途中でelseifラインだけを追加しているので食べません...ㅠㅠどうしたらいいですか?

    1. こんにちは?

      私は、インデックスファイルを新たにコピーして、別のテンプレートをもう一つ作って接続して使用したことがあります。
      状況に応じて、この方法も大丈夫のようです。
      index.phpファイルが定型化された場合には、英語のindexファイルで、若干の修正が必要な場合があります。
      このような内容は、直接説明していただくには、紙面が足りね。
      無料のプラグインでうまくいかなかったら、WPMLのような有料プラグインも一度ご検討ください。
      (購入する前に、このような内容も一度お問い合わせヘボショもなりそうです。)

    2. まず、上記のコードを利用して、英語版と日本語版で正しく表示されるかを確認してみましょ?
      それでも適用がないと、キャッシュを消去した後確認してください。

      各言語の言語コードが問題であれば、
      echo get_bloginfo( 'language');

      上記のPHPコードを使用して、各言語固有のコード(例:ko-KR)をチェックヘボショもなりそうです。

      1. 迅速な回答感謝!
        英語、日本語、韓国語はテストしましたが、中国語だけになっていません。していただいた他の問題もチェックしてみてください! :)
        ありがとうございます! ^^ *

      2. 次のようにすればないでしょうか

        <?php if( get_bloginfo('language') == 'en-US' ) : ?>

        // 영어 버전용 코드

        <?php elseif( get_bloginfo('language') == 'ko-KR' ) : ?>

        // 한국어 버전용 코드

        <?php else( get_bloginfo('language') == 'jp-JP' ) : ?>

        // 일본어 버전용 코드

        <?php else: ?>

        // 기타 언어용 버전용 코드

        <?php endif; ?>

        jp-JPは正しくありません。

      3. きゃっ!!!!!
        本当にああ〜とても感謝しています〓〓
        さっきは英語版、中国語版、日本語版を入れて他の言語用のを韓国語にしようとしたが、上記のソース通り(日本語コードにelseifで)ので、よくハング!
        社内に開発者がなく、Web担当者も私だけだグーグリングに英語苦労した。
        解決されて!!!!
        ありがとうございます〜!

コメントを残す

*電子メール情報は公開されません。