ハワイで、福祉関係のビジネスを展開されているクライアントからの要望で、現在英語オンリーのウェブサイトに日本語ページを追加することになりました。
クライアントが使っているのは、United Themes(ユナイテッドーテーマ )社が作っている、Brooklyn(ブルックリン)という高機能テーマです。
テーマオプションで、細かい指定をしているため、英語のフロントページに対応する日本語ページを作成するのは、なかなかハードルが高くなっています。
今回は多言語対応プラグインとして、WPMLを使用することにしました。
ところが、WPML本体では問題なかったのですが、追加モジュールのWPML String Translationをインストールしたところ、
The site is experiencing technical difficulties.
(このウェブサイトでは技術的な問題が発生しています)
とエラーが出て、ウェブサイトが正常に表示されなくなりました。
FTP経由でアクセスし、WPML String Translationをディレクトリごと削除したところ、ウェブサイトは正常に表示される様になりました。
明らかに、プラグインの競合によるエラー症状です。
wp-config.phpを書き換えデバグ機能をオンにしたところ、
Fatal error: Uncaught Error:
(致命的なエラー:不明なエラー)
が、吐き出されました。
Googleで検索したところ、WPMLのサポートページで、同じ症状が、ロシア語でレポートされているのを見つけました。
https://wpml.org/ru/forums/topic/500-error-after-activating-wpml-string-translation/
英語に翻訳して、読んでみたところ、同じ症状で、解決方法も記載されていました。
Brooklynのテーマディレクトリー内のファイル
/wp-content/themes/brooklyn/unite/core/helper/unite-helpers.php を開き
1551行目の
if ( function_exists(‘icl_t’) ) {
という記述を
if ( function_exists(‘icl_t’) && false ) {
の様に書き換え、アップロードする
ことで、直るとのことでした。
実際にテストサイトで試してみたところ、無事エラーが出なくなり、WPML String Translationも動作する様になりました。
高機能テーマで、プラグインとの競合が起きた場合、原因を特定することが難しく、なかなか対処するのが大変です。今回はなんとか、解決できて、ほっとしました。