WordPress5.2とqTranslate‑XTプラグインの言語切替で、MW WPFormのショートコードが実行されない不具合
最近WordPress5.2系と多言語対応プラグインの「qTranslate‑XT」を使って、サブディレクトリ型の日本語サイト/英語サイト切り替えられるサイトを作っています。 この言語切替機能を使ってみて、MW WP Formとの不具合に遭遇したので備忘録として書きます。
MW WPFormで発生した現象
MW WPFormでフォームを作成する場合、 例えば、テキストフィールドなら[mwform_text name="テキスト"]、 メールなら[mwform_email name="メール"] という風に、それぞれの項目をショートコードで設定していきます。 MW WPFormショートコード一覧テキストフィールド、テキストエリア、emailフィールド、電話番号フィールドを使ったシンプルなフォームです。
このフォームをqTranslate‑XTを使って英語にサイトに切り替えた場合、 テキストフィールド、テキストエリア、emailは問題なく表示されますが、電話番号フィールドのみ、ショートコードが表示されてしまいます (画像の赤い枠のところ)
WordPressのサポートサイトで似たような現象報告が
WordPressのサポートサイトで、 他の多言語化プラグイン「Bogo」を使ったサイトでも、1年以上前の記事ですが、MW WP Formを使った似たような不具合が確認されている模様。
Bogoを使用して、サブディレクトリ方式で複数言語ページを運営しています。 日本語は、https://hogehoge.com/ 英語は、https://hogehoge.com/en/ 台湾は、https://hogehoge.com/zh/ ...という具合です。 今回MW WP Formを使用しているのですが、英語などの日本語以外のページでは電話番号用のフィールドが展開されず、[mwform_tel name="tel"] というショートコードのまま表示されるという現象が起きています。 同じフォームを日本語ロケールのページに配置すれば問題なく、[ ]-[ ]-[ ]の形式で展開されます。 ちなみに電話番号以外の通常のテキストやテキストエリア、数値などは問題なく動作しています。
WP Supportサイト Bogoによるマルチ言語サイトで電話番号フィールドが展開されないより引用
原因を探るべく色々調べてはみましたが、解決策はみつからず...困った。
電話番号フィールド「mwform_tel」がショートコードで表示されてしまう不具合の解決策
これはMW WPFormプラグインのほうを修正しないと対応できない可能性が高いので、プラグイン側を改修する事はせずに、簡単な対応で済む事を優先します。
英語サイトの場合は、「電話番号フィールド」を使うのをやめ、テキストフィールドを使う事にします。
ほかに英語サイトでフォームを使うために設定が必要な項目は 英文でメールを返信するために「自動返信メール設定」の「件名、本文」を設定する必要があります。
この項目は、MW WP Form 1つのフォームでの日本語/英語切り替えが出来ないようなので、 MW WP Formから「日本語用」と「英語用」のフォームをそれぞれ作成します。
Formを作成したら、固定ページのフォームを表示させるページの本文欄に、それぞれのフォームのショートコードを挿入して更新します。
今回はこの方法で対処しましたが、どなたか解決方法をご存知でしたらこちらから解決方法を教えてください。
MovableType/WordPressを使ったホームページ制作、機能追加や設置代行などの改修、システム開発、サイトの保守を手掛けております。
アナタが実現させたい機能、やりたい事をお聞かせいただけませんか? そのイメージを一緒に実現しましょう!
お問い合わせは以下のページから!!