【Wordpress】Contact Form 7を入れたら矢印回転アイコンがくるくる回ったままを解決する
当ブログでは問合せフォーム用に超有名どころのContact Form 7というプラグインを採用しています。
今のところ何の問題もありません。
しかし別のワードプレスサイトにインストールしたところ、送信ボタンをクリックしてもその横で矢印回転アイコンが延々とくるくる回ったままでいっこうに終了しない現象がおきてるんです。
なぜだ?
別のワードプレスサイトと言うのは、ロリポップにインストしてある物品販売サイトのことなんです。
ちなみに当ブログは「さくらインターネット」を利用しています。
今はエックスサーバーに引っ越ししてます。
矢印が回転しっぱなし
それは2日前のことでした。
ロリポにインストしたワードプレスにプラグインの新規インストでContact Form 7をインストールしたんです。
実は同時に画像認証用の「Really Simple CAPTCHA」もインストールしてあります。
とりあえずデフォルトの状態でテスト送信してみます。
ところが送信ボタンの右横で矢印回転アイコンがくるくる回り続けるだけで、何の画面変化もないんです。
「またいつものだだこねが始まったか」と思い、ブラウザを変えて送信テスト。
しかし…おや?
こんな時はPC(パソコン)を再起動すると直ることが多いんですよね。
再起動後、PC(パソコン)がまっさらな状態で再度送信テストです。
でもやっぱり症状は変わらず。
メールをチェックしてみると、件名なしのテストメールがいくつも届いています。
ということは単に画面上の動きの問題ということになりますか。
さらにテストを続けてみます。
今度は何も入力しないで送信ボタンをクリック。
通常なら「必須項目に記入漏れがあります」のメッセージが出るハズなのに何も表示されず、やっぱりアイコンがただひたすらくるくる回っているだけ。
次に当ブログのお問合せフォームでテストするとやっぱりこちらは何の問題なし。
ということはサーバーの問題かバージョンの違いによるものか。
当ブログサイトのワードプレスのバージョンは3.3.1。
Contact Form 7のバージョンは3.1.1。
Really Simple CAPTCHAのバージョンは1.5。
一方、ロリポにインストールしてあるワードプレスのバージョンは3.3.1で同じ。
しかしながらContact Form 7のバージョンは3.2。
Really Simple CAPTCHAのバージョンは1.5でこちらは同じ。
ならばとContact Form 7のバージョン3.1.1 をインストールし直して再度テストをかけてみます。
しかしこれでも結果は変わらず。
えー、こんなとこでつまずくの?!
しょうがないのでいつものごとくG.先生に伺いを立ててみましたよ。
最初に気になったのはサーバーの違いという点です。
ロリポップはちょっとクセのあるサーバーなのでもしかしたら何かあるかもしれないなぁと思いながら調べるも結局何の情報もなし。
さらにネットを調べていくと…似たような解決事例が少しずつでてきましたね。
たとえば
Contact Form 7のFAQを読むと「こういった問題はプラグイン間、またはテーマとの衝突が原因で…他のプラグインをすべて停止して…」
やってみたけど効果ありませんでした。
こんなのもありました。
WordPressを再インストール
→これってものすごく面倒なんですけど!
外部SMTP接続にすべし!
→「WP-Mail-SMTP」を試すも効果なし。
.htaccess がおかしい場合がある
→調べたんですが変化なし。
共用SSLのURL変換が必要
→これは絶対に違うと思います。
Fast Secure Contact Form の方が便利だよ
→これは最終手段、などなど。
さらにG.先生にしつこく聞いてみたところ、ビンゴなタイトルが引っかかりましたよ。
「Contact Formで画像認証(CAPTCHA)送信後、矢印回転のまま完了画面にならない場合」。
まさにドンピシャです!
しかしよくよく読んでいくと『windowsサーバーの場合に起こる現象』らしいです。
うーん、ちょっと違うけどまあやってみるかということで記事に書いてある通りにしたところ、
できた!
どうやらContact Form 7の問題ではなくReally Simple CAPTCHA側の問題(?)だったようです。
完全に丸写しですが、really-simple-captcha.phpの中から下記の部分を探し出し、6行目の「trailingslashit」を「untrailingslashit」に変えるだけです。
0 1 2 3 4 5 6 7 8 9 10 11 |
function remove( $prefix ) { $suffixes = array( '.jpeg', '.gif', '.png', '.php', '.txt' ); foreach ( $suffixes as $suffix ) { $filename = sanitize_file_name( $prefix . $suffix ); $file = trailingslashit( $this->tmp_dir ) . $filename; if ( is_file( $file ) ) unlink( $file ); } } |
解決はしました。
しかし素人web屋の悲しいところで理屈がさっぱりわかりません。
はたまたこれが正解なのかどうかさえもわかっていません。
でもうまく行ってるようなので「よし」としましょう。
以上です。
記事はお役にたてましたか?
記事に興味をもっていただけたらソーシャルボタンでの共有お願いします^^
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓