今日は2025年4月1日です。
当ブログにも、ページの欄・所にコンタクトフォームを設けていて、
emailでメール送信されるようにしています。
コンタクトフォームは、
俗に言う「お問い合わせ先」です。
今はSNSで匿名的なブログなどでも連絡手段があり得ることもありますが、
もし、何かあった場合にはやはり「お問い合わせ先」として、
コンタクトフォームがあった方が良いと思われます。
そのコンタクトフォームですが、
プロモーションを含みます
2025年4月1日 (火曜日)本日の人気記事トップ10
2025年4月1日 (火曜日)↓における週間月間人気記事トップ3は?↓
2025年4月1日から「車庫証明ステッカー」廃止、交付手続きは従来通り 1PV
これまで1991年に導入された車庫証明の車の貼り付ける車庫証明ステッカーシールは廃止されます。車のナンバーから車庫証明の有無が確認できるようになったためのようです。ただし、新車購入時や中古車購入時など…
車の内装インパネ破損修理にプラリペアとプラリシートがおすすめ 1PV
車の内装インパネやあバンパーなどFRP樹脂やABS樹脂などのプラスチック製品の破損時に簡単に接着剤よりも強力にくっつく補修剤があることを知りませんでした。よく内装のインパネなどを剥がして配線処理などを…
カーメイトのエンジンスターターでエラー15表示と対処方法 34PV
夏冬に特に重宝するのが、エンジンスターターです。 メーカーはCARMATEやCOMTECユピテルなど各社ありますが、一番のオススメはリモコンから多くの情報を得ることができるカーメイト製品です。 なぜか…
エクストレイルT32運転席側バイザーメッキモール剥がれ修復方法とオススメ両面テープ 20PV
車の購入後、乗ろうが乗らまいが経年劣化というものは付きものなのですが、特にプラスチック部分や両面テープ部分などは経年劣化がどうしても起きてきてしまいます。 そんな車でも長めにお気に入りの愛車となれば長…
アイドリングストップシステム異常警告灯表示対処方法 19PV
2010年前後以降の車に搭載されていることの多いアイドリングストップシステム。各自動車メーカーによって呼び名は異なりますが、機能としては信号待ちが長い時や停止時間が長い時などに勝手に(自動的に)アイド…
2025年4月1日から「車庫証明ステッカー」廃止、交付手続きは従来通り 1PV
これまで1991年に導入された車庫証明の車の貼り付ける車庫証明ステッカーシールは廃止されます。車のナンバーから車庫証明の有無が確認できるようになったためのようです。ただし、新車購入時や中古車購入時など…
車の内装インパネ破損修理にプラリペアとプラリシートがおすすめ 1PV
車の内装インパネやあバンパーなどFRP樹脂やABS樹脂などのプラスチック製品の破損時に簡単に接着剤よりも強力にくっつく補修剤があることを知りませんでした。よく内装のインパネなどを剥がして配線処理などを…
今日は2025年4月1日です。
当ブログにも、ページの欄・所にコンタクトフォームを設けていて、
emailでメール送信されるようにしています。
コンタクトフォームは、
俗に言う「お問い合わせ先」です。
今はSNSで匿名的なブログなどでも連絡手段があり得ることもありますが、
もし、何かあった場合にはやはり「お問い合わせ先」として、
コンタクトフォームがあった方が良いと思われます。
そのコンタクトフォームですが、
ですが、
jsやcssなどプラグインを導入すると意外とページ表示速度が遅くなってしまったりします。
(多くのプラグインを導入している場合は特に…。)
全ページでContact Form7のCSSとJavaScript が読み込まれてしまいます。
そこで、
少しでもプラグインを使わずにできることはプラグインを使用しないでやっていこうと思いました。
Stinger6の場合ですと以下のコードをphpファイルとして新たに作成して、
テーマディレクトリ内にアップロードします。
(contact-form.php)必ずUTF-8形式です。
<?php
/*
Template Name: お問い合わせフォーム
*/
?>
<?php
if(isset($_POST['submitted'])) {
//項目チェック
if(trim($_POST['checking']) !== '') {
$captchaError = true;
} else {
//名前の入力なし
if(trim($_POST['contactName']) === '') {
$nameError = '名前が入力されていません';
$hasError = true;
} else {
$name = trim($_POST['contactName']);
}
//メールアドレスの間違い
if(trim($_POST['email']) === '') {
$emailError = 'メールアドレスが入力されていません';
$hasError = true;
} else if (!preg_match('|^[0-9a-z_./?-]+@([0-9a-z-]+.)+[0-9a-z-]+$|', trim($_POST['email']))) {
$emailError = 'メールアドレスが正しくありません';
$hasError = true;
} else {
$email = trim($_POST['email']);
}
//お問い合わせ内容の入力なし
if(trim($_POST['comments']) === '') {
$commentError = 'お問い合わせ内容が入力されていません';
$hasError = true;
} else {
if(function_exists('stripslashes')) {
$comments = stripslashes(trim($_POST['comments']));
} else {
$comments = trim($_POST['comments']);
}
}
//エラーなしの場合、メール送信
if(!isset($hasError)) {
mb_language("japanese");
mb_internal_encoding("UTF-8");
$emailTo = get_option('admin_email');
$subject = 'お問い合わせ';
$body = "お名前: $name nnメールアドレス: $email nnお問い合わせ内容: $comments";
$title = get_bloginfo('name');
$from = mb_encode_mimeheader(mb_convert_encoding("$titleのお問い合わせ","UTF-8"));
$headers = 'From: '.$from.' <'.$emailTo.'>';
mb_send_mail($emailTo, $subject, $body, $headers);
//自動返信用
$subject = 'お問い合わせ受付のお知らせ';
$from = mb_encode_mimeheader(mb_convert_encoding("$title","UTF-8"));
$headers = 'From: '.$from.' <'.$emailTo.'>';
$body = "$name 様 nnお問い合わせありがとうございます。n改めて担当者よりご連絡をさせていただきます。nnお名前: $name nnメールアドレス: $email nnお問い合わせ内容: $comments";
mb_send_mail($email, $subject, $body, $headers);
$emailSent = true;
}
}
} ?>
<?php get_header(); ?>
<main>
<?php if(isset($emailSent) && $emailSent == true) { ?>
<h1 class="entry-title archive-title"><?=$name;?>様、お問い合わせありがとうございます。</h1>
メールを確認次第、返事をさせて頂きます。
<?php } else { ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<h1 class="entry-title archive-title"><?php the_title(); ?></h1>
<?php the_content(); ?>
<form action="<?php the_permalink(); ?>" id="contactForm" method="post">
<ol class="forms">
<li><label for="contactName">お名前</label>
<input type="text" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" class="requiredField" />
<?php if($nameError != '') { ?>
<span class="error"><?=$nameError;?></span>
<?php } ?>
</li>
<li><label for="email">メールアドレス</label>
<input type="text" name="email" id="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" class="requiredField email" />
<?php if($emailError != '') { ?>
<span class="error"><?=$emailError;?></span>
<?php } ?>
</li>
<li class="textarea"><label for="commentsText">お問い合わせ内容</label>
<textarea name="comments" id="commentsText" rows="20" cols="30" class="requiredField"><?php if(isset($_POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea>
<?php if($commentError != '') { ?>
<span class="error"><?=$commentError;?></span>
<?php } ?>
</li>
<li class="buttons"><input type="hidden" name="submitted" id="submitted" value="true" /><button type="submit">送信する</button></li>
</ol></form>
<?php endwhile; ?>
<?php endif; ?>
<?php } ?>
</main>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
そして、
すると…。
なぜかエラー表示なってしまいました。^^;)
エラー表示内容を見ると、
なにやら1行目が云々とありました。
(すみませんスクリーンショット撮り忘れました。)
なので、
1行目にコメントアウトしてあるはずの
/*Template Name:お問い合わせフォーム*/という部分を削除します。
<?php
if(isset($_POST['submitted'])) {
//項目チェック
if(trim($_POST['checking']) !== '') {
$captchaError = true;
} else {
//名前の入力なし
if(trim($_POST['contactName']) === '') {
$nameError = '名前が入力されていません';
$hasError = true;
} else {
$name = trim($_POST['contactName']);
}
//メールアドレスの間違い
if(trim($_POST['email']) === '') {
$emailError = 'メールアドレスが入力されていません';
$hasError = true;
} else if (!preg_match('|^[0-9a-z_./?-]+@([0-9a-z-]+.)+[0-9a-z-]+$|', trim($_POST['email']))) {
$emailError = 'メールアドレスが正しくありません';
$hasError = true;
} else {
$email = trim($_POST['email']);
}
//お問い合わせ内容の入力なし
if(trim($_POST['comments']) === '') {
$commentError = 'お問い合わせ内容が入力されていません';
$hasError = true;
} else {
if(function_exists('stripslashes')) {
$comments = stripslashes(trim($_POST['comments']));
} else {
$comments = trim($_POST['comments']);
}
}
//エラーなしの場合、メール送信
if(!isset($hasError)) {
mb_language("japanese");
mb_internal_encoding("UTF-8");
$emailTo = get_option('admin_email');
$subject = 'お問い合わせ';
$body = "お名前: $name nnメールアドレス: $email nnお問い合わせ内容: $comments";
$title = get_bloginfo('name');
$from = mb_encode_mimeheader(mb_convert_encoding("$titleのお問い合わせ","UTF-8"));
$headers = 'From: '.$from.' <'.$emailTo.'>';
mb_send_mail($emailTo, $subject, $body, $headers);
//自動返信用
$subject = 'お問い合わせ受付のお知らせ';
$from = mb_encode_mimeheader(mb_convert_encoding("$title","UTF-8"));
$headers = 'From: '.$from.' <'.$emailTo.'>';
$body = "$name 様 nnお問い合わせありがとうございます。n改めて担当者よりご連絡をさせていただきます。nnお名前: $name nnメールアドレス: $email nnお問い合わせ内容: $comments";
mb_send_mail($email, $subject, $body, $headers);
$emailSent = true;
}
}
} ?>
<?php get_header(); ?>
<main>
<?php if(isset($emailSent) && $emailSent == true) { ?>
<h1 class="entry-title archive-title"><?=$name;?>様、お問い合わせありがとうございます。</h1>
メールを確認次第、返事をさせて頂きます。
<?php } else { ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<h1 class="entry-title archive-title"><?php the_title(); ?></h1>
<?php the_content(); ?>
<form action="<?php the_permalink(); ?>" id="contactForm" method="post">
<ol class="forms">
<li><label for="contactName">お名前</label>
<input type="text" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" class="requiredField" />
<?php if($nameError != '') { ?>
<span class="error"><?=$nameError;?></span>
<?php } ?>
</li>
<li><label for="email">メールアドレス</label>
<input type="text" name="email" id="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" class="requiredField email" />
<?php if($emailError != '') { ?>
<span class="error"><?=$emailError;?></span>
<?php } ?>
</li>
<li class="textarea"><label for="commentsText">お問い合わせ内容</label>
<textarea name="comments" id="commentsText" rows="20" cols="30" class="requiredField"><?php if(isset($_POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea>
<?php if($commentError != '') { ?>
<span class="error"><?=$commentError;?></span>
<?php } ?>
</li>
<li class="buttons"><input type="hidden" name="submitted" id="submitted" value="true" /><button type="submit">送信する</button></li>
</ol></form>
<?php endwhile; ?>
<?php endif; ?>
<?php } ?>
</main>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
そうすると、
固定ページを作成する際にテンプレート属性で「お問い合わせフォーム」と選択できた部分が、
選択不能になりますが、
ブログ上ではちゃんとしっかりとコンタクトフォームとして機能しています。
(お問い合わせ先とも言う…。)
なので、
まだまだ零細的な当ブログでは機能しているので問題ありません。
/*コンタクトフォーム*/
.forms {
margin:16px
}
.forms li {
margin:16px;
list-style:none
}
.forms label {
cursor:pointer;
display:block;
font-weight:800
}
.forms input,.forms textarea {
border:1px solid #7E8AA2;
border-radius:8px;
padding:8px;
width:240px;
font-size:100%
}
.forms li .error {
font-size:80%;
color:red
}
.forms li.textarea .error {
display:block;
position:absolute;
right:0;
top:0
}
.forms li.buttons button {
cursor:pointer;
padding:8px
}
/*コンタクトフォーム*/
また、若干のバグなのか右サイドバーがカラム落ちしちゃってますが…。
気にしません。
何より機能するかしないかが一番重要です!!
以上、
プラグインなしでコンタクトフォーム(お問い合わせ先)を追加・作成する方法でした。
参考になれば幸いです。
お手数ですが、
固定ページでの属性の選択ができるように修正したphpコードをお試ししてみてください。m(__)m
以下です。
続、プラグインなしでコンタクトフォームを作成方法 | せきろぐ
よろしくお願いします。
3/28(金)9時から4月1日(火)23時59分まで、「AmazonスマイルSALE」開催予定
WordPressのテーマをカスタマイズしてみました。 カスタマイズしてみた内容は、 ちょっと試行錯誤し過ぎて明確には覚えていないのですが…。バックグラウンドの色の変更。新しい記事の表示件数の変更。(…
WordPress アップグレード 不具合 伝えたいこと 備忘録
本日、やいやいと思いWordPressのバージョンを4.5.1からそろそろバグや不具合などの情報も出きったのかなぁ…。なんて思いバージョンアップをしました。 そしたら、jetpackが連携できなくなっ…
本日、かの有名な目次作成プラグインであるTable of Contents Plus(TOC+)を導入してみました。 でも、・・・・・・。 なんとなくデザインがどうなのかなぁ。的な感じで…
もう言わずもがな知られた超有名子役の(だった)芦田愛菜ちゃんです。そんな超有名子役の芦田愛菜ちゃんも来年度からはもう中学生のようです。有名私立中学に合格したことはすでに知られていますが、どこの有名私立…
プライバシーポリシー 当サイトに掲載されている広告について当サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net、Amazonアソシエイト、バリューコマース、)を利用し…
ホワイトデープレゼントは以下などの豊富なキャンペーン商品から選ぶと良いと思います。
世界中でNo.1のシャアを誇るAmazonでのお得なお買い物でお得をしよう!!ネット通販なので、もちろん24時間年中無休です。健康商品から食品、車カスタマイズ商品、大手家電メーカー商品やパソコンの自作サプライ商品、その他アマゾン・プライムでは映画やドラマなど多くの作品や番組を見ることができます。マスクなど衛生商品も今では必須アイテム。一番信用できて一番商品数の多いAmazonでの買い物が絶対にオススメ!!
よろしかったらシェアよろしくお願いします。
[…] WordPressプラグインなしでコンタクトフォームを作成方法 – WordPressデビュー津々浦々 […]