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

多言語ウェブサイトの構築は、グローバルユーザーとのコミュニケーションのための重要な戦略です。 WordPressでは、これを簡単に実装できるさまざまな方法があります。 WPMLまたはPolylanなどのプラグインを使用すると、簡単に多言語サイトを構築できます。

WordPressで多言語サイトを構築するときにget_bloginfo() 関数はサイトの基本情報 (サイト名、説明、URL など) を動的に取得でき、多言語環境でも効率的なコンテンツ出力を可能にします。この記事では WordPress 多言語サイトを運営するときはget_bloginfo() をどのように活用できるかについて簡単に見てみましょう。

👉WPMLは現在、年間サブスクリプションライセンスのみ提供され、生涯ライセンスは廃止されました。生涯ライセンスを適用したい場合は、WPMLライフタイムライセンスを使用して多言語サイト設定を提供していますので、参考にしてください。

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

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

WordPressの最初のページの場合、通常はindex.phpファイルを使用することがよくあります。このような場合、Polylanなどのプラグインを使用すると、言語によっては最初のページが必要に応じて表示されない場合があります。

たとえば、有料テーマで最初のページにカテゴリ別に表示する場合、言語別に調整するのは簡単ではないかもしれません。この場合の簡単な解決策は、言語ごとに異なるフロントページを設定することです。たとえば、index.phpファイルを言語ごとに少し変形して、page-english.php、page-korean.phpテンプレートを作成する方法を考えてみましょう。 (言語ごとにテンプレートを作成する 参考)

WordPressのカテゴリ別言語

しかし、上記のような方法を使用する場合でも、カテゴリページなど、いくつかのページは、制御することができません。 たとえば、次のように言語別カテゴリに該当する言語の特定のフレーズを出力したい場合があります。

上記の場合、英語のカテゴリページとハングルカテゴリーページのカテゴリータイトルに書か数を表示しています。 上記のようにハングルと英語のカテゴリーページ、それぞれのカテゴリーのタイトルフレーズを変えたい場合は、カテゴリーがいくつかの犬されない場合 is_category()を使用して言語ごとに制御することができます。

ただし、カテゴリが多い場合や頻繁に変更される場合は面倒です。また、フロントページ(ホームページ)を言語別に個別のページを使用せずにindex.phpページをそのまま使用したい場合もあります。

この場合、利用可能 WordPress 組み込み関数が 取得する_bloginfo()です。 取得する_bloginfo()にはさまざまなパラメータがあります。私たちが望むパラメータは「言語」です。次のようにget_bloginfo('language') を使用すると、言語ごとに制御が可能です。

<?php if( get_bloginfo('language') == 'en-US' ) : ?> // 英語版のコードbloginfo('language') == 'ja-JP' ) : ?> // 日本語版のコード//その他の言語用バージョン用コード

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

echo get_bloginfo( 'language');

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

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

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

最後に、

WordPressで多言語サイトを構築するときに言語別に異なるコンテンツを表示したい場合に利用可能 取得する_bloginfo()について調べました。

この記事は2015年5月に初めて作成されました。 エレメン などとうまく統合されるため、以前よりも簡単に多言語サイトを構築できます。

参照


7のコメント

コメントを残す

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

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

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

    返信
    • こんにちは?

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

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

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

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

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

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

        <?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は正しくありません。

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