moriibe
フォーラムへの返信
-
フォーラム: プラグイン
返信が含まれるトピック: localeが切り替わらない(それによりbogoのshortcodeが想定した動作をしてくれない)お世話になっております。
この件、解決しましたのでご報告します。サーバーがリバースプロキシ構成であり、その対応が必要であることが原因でした。
以下の一文をwp-config.phpに入れたところ、上記問題は全て解決いたしました。$_SERVER[‘HTTP_HOST’] = $_SERVER[‘HTTP_X_FORWARDED_HOST’];
サーバーに原因があると分かったのは三好様のお陰です。
大変ありがとうございました。今後ともよろしくお願いいたします。
フォーラム: プラグイン
返信が含まれるトピック: localeが切り替わらない(それによりbogoのshortcodeが想定した動作をしてくれない)ご返信ありがとうございます。
フォーラムのルールをよく読まず、勝手にメールをお送りしてしまい申し訳ありませんでした。
サイトをご覧いただきたい気持ちは強いのですが、やはりURLの公開は出来そうにありませんので、
ひとまず引き続き、サーバー周りを中心に独自で調べていきたいと思っております。
原因が分かりましたら、ここに再投稿いたします。様々なアドバイスをくださり、大変ありがとうございます。
また質問をさせていただくかもしれません(おそらくあります…)。
申し訳ありませんが、その際はよろしくお願いいたします。
またWordCampなどで三好様にお会いできる機会に、
直接お礼を言わせていただけると幸甚です。フォーラム: プラグイン
返信が含まれるトピック: localeが切り替わらない(それによりbogoのshortcodeが想定した動作をしてくれない)ご返信ありがとうございます。
プラグイン「Rewrite Rules Inspector」を追加して確認いたしました。
Rule中に(ja|en)/?$という表記も確認することができ、
Rewriteがindex.php?lang=$matches[1]、Sourceがpost_formatとなっております。
なおこのルールが計300行ほどあり、(ja|en)/?$はその30行目ほどです。
テスト環境にも同プラグインを入れて本番環境の全レコードとdiff比較しましたが、完全に一致していました。大変お手数をおかけするのですが、ご提案を頂戴したとおり、ホームページをご覧いただいても宜しいでしょうか。
まだ未完成でフォーラムにURLを載せることが社内規則的にできないため、不躾ながら三好様が公開されているメールアドレスに
URLと状況説明のメールをさせていただきたく存じます。よろしくお願いいたします。
(進展については、フォーラム中にも記していく所存です)なおリライトルートと関係があるかもしれませんので、少し前に別の不具合があったことをご報告させていただきます。
本番環境への移行処理を終えてトップページを開こうとすると、301エラーとなりページを開けず、
最終的にはURLの末尾に”index.php”を追加したところ、トップページが開きました。
トップページ以外のページは問題なく開いたのですが、トップを開くときだけindex.phpの入力が必要という状況でした。
この問題は、当時は「設定」→「ホームページの表示」で固定ページをトップページにしていたのですが、
「最新の投稿」を”ホームページの表示”として、front-page.phpをトップページにしたところ解消しています。
(他サイトで、固定ページではなく最新の投稿とすると直ったと報告があったので、理由は分からないままそうしております)この問題のもう一つの解消方法として、wp-includes/template-loader.phpの
do_action( ‘template_redirect’ );をコメントアウトするという方法をインターネット上で見つけて、
(例えば: http://web-wizardry.net/wordpress/wordpress-redirect/)
試したのですが、この方法でも問題は解決しました。ただ、WordPressにログインして、サイトページに戻っても
上の管理バー(メニューバー)が表示されなくなったため、前者のfront-page.phpでのトップページ表示を採用しております。本件に関係があるのか分からないまま書いてしまい、長文となり申し訳ありません。
フォーラム: プラグイン
返信が含まれるトピック: localeが切り替わらない(それによりbogoのshortcodeが想定した動作をしてくれない)ご返信、大変ありがとうございます。
postmetaのmeta_keyが’_locale’であるmeta_valueを確認したところ、
全てに’ja’もしくは’en_US’が付与されていました。
レコード数自体もテストサーバーと本番サーバーで違いはありませんでした。本件、説明不足で申し訳ありません。
現状、本番環境においても、URLに/en/を挟めば固定ページやカスタム投稿は
英語ページに切り替わります。
例えばshortcodeの代わりに『日英切替ボタンの「英」ボタンを押すとURLに/en/が入る、
「日」ボタンを押すとURLから/en/を消す』というスイッチをPHPで自作してみたところ、
固定ページ・カスタム投稿自体の切替は正常に動いていました。問題だと認識していますのは、システム(と表現して良いか分かりませんが)側の
localeの切り替えが上手くいっていないことです。
例えば英語ページ(URLに/en/が入っているページ)でget_locale()をしても
‘ja’が出力されますし、WordPress関数のThe_title()やhome_url()や
get_bloginfo()といったURLを出力するものがことごとく
日本語ページ(URLに/en/が入っていないページ)を指してしまいます。おそらくBogoに根ざしていない問題で恐縮ですが、
心当たりありましたらご教示くださりますと幸いです。
よろしくお願いいたします。なお、本番環境が古いバージョンなのは、同じサーバーにて別の業者が別のシステムを
展開しており、そのシステムがPHP7に非対応であることが原因です。
こちらとしましても速やかにPHP7に移行したいため、苦々しく思っております。