wordpressの定番のお問い合わせフォームと言えば、「MW WP Form」か「Contact Form 7」です。
wordpressのお問い合わせには、他のプラグインもあるかもしれませんが、私は現状この2つのどちらかで全ての案件に対応しております。
今回、ロリポップサーバーでサイトを公開している企業様のwordpress導入、設定、お問い合わせフォーム、お知らせの導入をさせていただきました。
今回は、MW WP Formを使用したのですが、少しハマってしまったので、エラーメッセージが表示されないとか白い画面率が高くなるとかなんか動作おかしい時などの現象が発生していたら確認して見てください。
解決したら、いいね!よろしくお願いします
私がハマった現象その1 wordpressの管理画面が頻繁に白くなる
wordpressの管理画面でメールフォームを設定していきますが、なぜか作業していると急に管理画面が表示されない状態になっていました。
こうなると何回読み込み直しても白い画面のまま
心の中では、完全にロリポップサーバーのせいにして、やっぱダメだよなーとか言い放っておりました(大変申し訳ありません)
でも、ロリポップがだめではありませんでした。
解決したら白い画面になることもなく動作しております。
メールフォームでバリデーションの未入力チェックをしてもスルーされる
MW WP Formには、未入力チェックなどのバリデーション機能が付いています。
未入力だったエラーにして、もう一度入力させる状態に持っていくのですが、いつもなら出るはずのエラーメッセージが表示されず、修正のできない確認画面に遷移してしまいます
今回は、軽めに必須チェックのみでしたが、このあたりもうまく動かない状態です。
管理画面が白くなるで検索しても、設定ミスのものばかりで正解がない
まあ、検索の仕方が悪いのかもしれませんが、いくら探しても白くなる理由がわからず、途方にくれて他のサーバーでもやって見たり、設定を変えて試したりと色々ともがいてみてみました。
結局、原因がわかったので共有しておきます
独自でテンプレートを作ってませんか?
私の場合、前は標準のテンプレートをいじる形で実装することが多かったのですが、だいぶ知識が付いてきたため、独自でテンプレートを作ることが多くなってきました。
そうです。
原因はこれでした。
具体的には、個別投稿ページに
<?php wp_head();?>
<?php wp_footer();?>
が入っていないことが原因でした。
通常では、シンプルに
<?php get_header() ; ?>
<?php wp_head();?>
<?php if(have_posts()): while(have_posts()):the_post(); ?>
<?php the_content(); ?>
<?php endwhile; endif; ?>
<?php get_footer() ; ?>
<?php wp_footer();?>
と書けば正常動作するのですが、
<?php get_header() ; ?>
<?php if(have_posts()): while(have_posts()):the_post(); ?>
<?php the_content(); ?>
<?php endwhile; endif; ?>
<?php get_footer() ; ?>
でも、wordpressは動作するため、見逃しておりました。
原因のwp_head()とは
プラグインを動作させるためのおまじないみたいなものです。
通常は、</head>の直前に配置します。
今回、私のミスでこのタグを挿入し忘れていたことが原因でした。
このタグを配置したところ、画面が白くなる現象も、エラーが表示されない現象も一発で解決できました。