- 2010-03-03 (水) 23:23
- 技術メモ
こんにちは。販促格さんこと堺です。
wordpress の ktai style と Contact Form 7 の連携でハマりました。
忘れないようにメモしておきます。
wordpress の Contact Form 7 を携帯でそのまま使うと、au ではPOST送信できませんでした。
調べてみると、$_POST['_wpcf7'] が Contact Form 7 に渡されていないので、
入力チェックも何もせずまたフォームを表示してしまうという不具合でした。
wordpress の ktai style を使うと、style で display:none になっていると、
中のタグは自動的に削除してくれる?仕様なのか、
それとも au の仕様で display:none 内の input タグは無視されてしまうのか
詳しい原因はまだ調査していませんが、
とにかくこの display:none で囲まれているのが直接の原因でした。
display:noneで囲まなくても input hidden タグはブラウザに表示されないので、
(なんでこんな仕様にしているんでしょうね??)
ここをコメントアウトしてしまえば、携帯で問題なく動きました。
includes/classes.php 50行目あたり
$form .= ' <form class="wpcf7-form" action="' . $url . '" method="post">' . "\n"; // ここをコメントアウト // $form .= '<div style="display: none;">' . "\n"; $form .= '<input name="_wpcf7" type="hidden" value="' . esc_attr( $this->id ) . '" />' . "\n"; $form .= '<input name="_wpcf7_version" type="hidden" value="' . esc_attr( WPCF7_VERSION ) . '" />' . "\n"; $form .= '<input name="_wpcf7_unit_tag" type="hidden" value="' . esc_attr( $this->unit_tag ) . '" />' . "\n"; // ここをコメントアウト // $form .= '</div> ' . "\n"; $form .= $this->form_elements(); </form>
一度は解決していた問題だったのですが、
それをすっかり忘れていて、うっかり管理画面からバージョンアップしてしまいました。
携帯で使っている人は Contact Form 7 のバージョンアップには気をつけてください。
タグ: wordpress, カスタマイズ
この情報で助かりました。
無事にドコモ以外の携帯からも、送ることができるようになりました。
感謝です!~