質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

8063閲覧

【WPプラグイン: MW WP Form】でエラーメッセージの英語化をしたい

t-book

総合スコア29

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2015/05/08 10:45

編集2015/05/08 10:46

いつも大変お世話になっています。

現在Wordpressのプラグイン MW WP Formで日本語・英語のお問い合わせページを作成しています。
その際、バリデーション時のエラーメッセージの変更について困ってしまったので、ご相談させていただきたく投稿しました。

■やりたいこと
表題の通りですが、英語フォームの時はエラーメッセージを英語に変えたいです

■構成
以下の様な固定ページを作成
・日本語入力、日本語確認、日本語完了、英語入力、英語確認、英語完了
・日本語と英語用の2種類のフォームを作成し、各固定ページの本文にフォーム識別子を記述
・テンプレートは、page-contact-ja, page-contact-enの2種類を用意

■前提条件
エラーメッセージをカスタマイズできるフックは用意されているのですが↓、

lang

1// http://plugins.2inc.org/mw-wp-form/filter-hook/mwform_error_message/ 2function my_error_message( $error, $key, $rule ) { 3 if ( $key === 'お名前' && $rule === 'noempty' ) { 4 return 'お名前が入力されておらぬぞ'; 5 } 6 return $error; 7} 8add_filter( 'mwform_error_message_mw-wp-form-xxx', 'my_error_message', 10, 3 );

本番サーバー、テストサーバー、開発サーバー、それぞれfunctions.phpファイルなどの同期が取られているため、識別子(上記コードでのxxxにあたる箇所)での指定ができずにこの手法が使えません...

■以下の様なことを考えてみましたが、やり方が分かりません。。(そもそも可能かどうかも)
1.特定の固定ページ(page-contact-enテンプレ)のみ、別に準備したPOファイルを読み込ませる
2.識別子を使わずに、メッセージをカスタマイズ
3.そもそものフォーム識別子に定数を使用する

もしくは他に何か良い考えがあればご教授いただけると大変助かります。。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

何とか実現させることができたので自己解決とします。
※ただしあまりスマートではない気もするので、もっと良い考えがあればぜひコメントいただけますと嬉しいです

■対策
・新たにショートコード関数をfunctionsに作成
・該当の固定ページ(フォーム識別子を貼り付けている)に、作成したショートコードを追加
・新規ショートコードにはフォーム識別子のkeyを渡す
・渡されたkeyをエラーメッセージのフィルター名として使用する

lang

1function custom_contact_error_msg_en($arg) { 2 extract( 3 shortcode_atts( 4 array( 5 'num' => 'xxx' 6 ), 7 $arg 8 ) 9 ); 10 /* エラーメッセージのバリデーション */ 11 function my_error_message( $error, $key, $rule ) { 12 /* 未入力 */ 13 if ($rule === 'noempty') { 14 return 'Please enter.'; 15 } 16 return $error; 17 } 18 // 渡された識別子keyをフィルター名として実行 19 add_filter( 'mwform_error_message_mw-wp-form-' . $num, 'my_error_message', 10, 3 ); 20 21} 22add_shortcode('custom_mwform_error_msg', 'custom_contact_error_msg_en');

↓を記事の本文に追加
[custom_mwform_error_msg num="XXX"]

投稿2015/05/09 02:14

t-book

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問