• 解決済 uyah

    (@uyah)


    ブログページでの項目の表記を英語で表示するためにwp-config.php内で、

    if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/') == 0) {
    	define ('WPLANG' , 'en');
    }else{
    	define ('WPLANG' , 'ja');
    };

    を追記しました。

    ローカルでは、ダッシュボード等は日本語で表示され、ブログページ上の各項目は英語表記とイメージ通りになったのですが、サーバにアップしたらダッシュボードのメニューや文面もほとんどの部分が英語になってしまいました。
    サーバはお名前.comを使用していますがこちらが何か原因になっているのでしょうか?

    アドバイス頂ければと思います。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    uyahさん、こんにちは。

    strpos の警告で

    この関数は論理値 FALSE を返す可能性がありますが、FALSE として評価される値を返す可能性もあります。 詳細については 論理値の セクションを参照してください。この関数の返り値を調べるには ===演算子 を 使用してください。

    とあります。これは、たとえばインストール場所がフォルダ内であった場合、strpos の返値はフォルダ名に応じた数字が返りますが、ドメイン直下でのインストールの場合は、管理画面の場合は数字の 0 が返り、管理画面以外では false が返るため、どちらの場合でも条件式が成り立つことになります。

    トピック投稿者 uyah

    (@uyah)

    jim912さん

    ご返答ありがとうございます。

    さっそく試してみまして、

    if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/') === 0) {
    	define ('WPLANG' , 'ja');
    }else{
    	define ('WPLANG' , 'en');
    };

    変更した所、表示を変えることができました。

    サーバ上にアップすると状況が変わってしまうということがわかり勉強になりました。
    ありがとうございました。

    モデレーター jim912

    (@jim912)

    uyahさん

    おめでとうございます。
    簡単にフィードバックするなら、文字列が含まれるか否かは、真偽値のfalseと比較する方が正確さがまします。

    if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/') !== false) {

    だと、設置した階層を問わずに判別することができます。
    あるいは、条件式を defined( ‘WP_ADMIN’ ) で代用することも可能でしょう。

    モデレーター Seisuke Kuraishi

    (@tenpura)

    こちら解決済みですが、例示されているコードが翻訳だけでなく日本語環境用機能まで取り去ってしまう日本語ブログでは非推奨な方法であるためメモを残しておきます。(質問者の方が問題解決できたかどうかとは関係のない一般的な情報です)

    なぜ上記方法に問題があるのか、また、日本語環境用の機能を残したまま日本語翻訳だけを行わせない方法については、こちらの記事を参考にしてください。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「ブログページの英語表記」には新たに返信することはできません。