連絡フォームは相手への確認メールを送るためにJetpackにあるフォームではなく、プラグインのContact Form 7を使うことにした。Contact Form 7で日本語のフォームをもとに、英語とフランス語のフォームも、ちょうどWPMLで多言語ページを作るようにコピーして表示するテキスト部分だけを英語・フランス語に翻訳して貼り付けた。
日本語のページにつけた日本語のフォームは問題なく動作するが、英語とフランス語のページにつけたフォームはどちらも動作しない。Contact Form 7をいくらいじってもうまくいかない。もうお手上げ状態だった。
もしかしたら親ページの日本語のフォームと子ページの英語・フランス語のフォームとが競合して不具合になるのかもしれないと考えた。解決法としてそれぞれ別のページを作った。つまり3つのページがそれぞれ親ページになるということだ。案の定、問題は解決した。つまり、どのページもそれぞれフォームが動作したのである。こうして会社情報と連絡方法というページは親子関係のない独立した3つのページになったのである。
Symptoms
Submitting the form in the secondary language fails. This producess (produces?) the below console error:
xxxxx/wp-json?lang=es/contact-form-7/v1/contact-forms/XXX/feedback 404 (Not Found)
This issue occurs only when setting the language URL format to “Language name added as a parameter“.
Workaround
Add this code to the theme’s functions.php file, found in the ../wp-content/themes/theme-name/folder:
1
|
add_filter( 'wpcf7_load_js' , '__return_false' );
|
症状
セカンダリ言語でフォームを送信すると失敗します。以下のコンソールエラーが発生します。
xxxxx / wp-json?lang = es / contact-form-7 / v1 / contact-forms / XXX / feedback 404 (Not Found)
この問題は言語URL形式を「パラメータとして追加された言語名」に設定する場合にのみ発生します。
回避策
このコードを../wp-content/themes/theme-name/フォルダにあるテーマのfunctions.phpファイルに次の文字列を追加します。
1
|
add_filter( 'wpcf7_load_js' , '__return_false' );
|
おかげさまで解決しました。ありがとうございました。
ディスカッション
コメント一覧
まだ、コメントがありません