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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1000閲覧

[wordpress] contactform7 で エラー文言の表示位置が変更できない

amagimagi

総合スコア7

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/12/06 00:08

編集2017/12/06 01:26

###前提・実現したいこと
wordpressのプラグイン「contactform7」でフォームを作成する際に
必須項目のエラー表記を出す位置をカスタマイズしたい。

###発生している問題・エラーメッセージ
郵便番号の上三桁、下四桁など入力項目を分割してかつ横並びにし、
それぞれ必須項目とすると、意図しない位置にエラー表示が出てしまいレイアウトが崩れてしまう。

###該当のソースコード
フォームのコード:

<p>お名前 (必須)<br /> [text* your-name] </p> <p>好きなもの (必須)<br /> [checkbox* fav "りんご" "みかん" "バナナ" "その他"][text fav-etc] <span class="wpcf7-custom-item-error fav"></span> </p> <p>[submit "送信"]</p>

punction.php の記述:

function wpcf7_custom_item_error_position( $items, $result ) { // メッセージを表示させたい場所のタグのエラー用のクラス名 $class = 'wpcf7-custom-item-error'; // メッセージの位置を変更したい項目名 $names = array( 'fav' ); // 入力エラーがある場合 if ( isset( $items['invalids'] ) ) { foreach ( $items['invalids'] as $k => $v ) { $orig = $v['into']; $name = substr( $orig, strrpos($orig, ".") + 1 ); // 位置を変更したい項目のみ、エラーを設定するタグのクラス名を差替 if ( in_array( $name, $names ) ) { $items['invalids'][$k]['into'] = ".{$class}.{$name}"; } } } return $items; } add_filter( 'wpcf7_ajax_json_echo', 'wpcf7_custom_item_error_position', 10, 2 );

###試したこと
http://wpcj.net/1130 を参考にまずはテストコードをそのまま入力してみましたが、
エラー表記の位置が変わりませんでした。。

###補足情報(言語/FW/ツール等のバージョンなど)
wordpress 4.9.1
contactform7 4.9.1

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

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

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

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

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

guest

回答1

0

ベストアンサー

バージョンによって、$itemsの値が変わっているのだと思います。

Array ( [into] => #wpcf7-f5-p24-o1 [status] => validation_failed [message] => 入力内容に問題があります。確認して再度お試しください。 [invalidFields] => Array ( [0] => Array ( [into] => span.wpcf7-form-control-wrap.fav [message] => 必須項目に入力してください。 [idref] => ) ) )

functions.phpに記載の $items['invalids'] 箇所を $items['invalidFields'] に変更して動かないでしょうか?

function wpcf7_custom_item_error_position( $items, $result ) { $class = 'wpcf7-custom-item-error'; $names = array( 'fav'); if ( isset( $items['invalidFields'] ) ) { foreach ( $items['invalidFields'] as $k => $v ) { $orig = $v['into']; $name = substr( $orig, strrpos($orig, ".") + 1 ); if ( in_array( $name, $names ) ) { $items['invalidFields'][$k]['into'] = ".{$class}.{$name}"; } } } return $items; } add_filter( 'wpcf7_ajax_json_echo', 'wpcf7_custom_item_error_position', 10, 2 );

投稿2017/12/06 07:08

Rykiel727

総合スコア66

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

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

amagimagi

2017/12/06 09:29

期待していた動作になりました! こちらを元にカスタマイズしたいと思います。 誠にありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問