今日は2025年4月4日です。
当ブログにも、ページの欄・所にコンタクトフォームを設けていて、
emailでメール送信されるようにしています。
コンタクトフォームは、
俗に言う「お問い合わせ先」です。
今はSNSで匿名的なブログなどでも連絡手段があり得ることもありますが、
もし、何かあった場合にはやはり「お問い合わせ先」として、
コンタクトフォームがあった方が良いと思われます。
そのコンタクトフォームですが、
プロモーションを含みます
2025年4月4日 (金曜日)本日の人気記事トップ10
2025年4月4日 (金曜日)↓における週間月間人気記事トップ3は?↓
2010年前後以降の車に搭載されていることの多いアイドリングストップシステム。各自動車メーカーによって呼び名は異なりますが、機能としては信号待ちが長い時や停止時間が長い時などに勝手に(自動的に)アイド…
つまらない…。人生とは?人間とは?生きるとは?健康とは?病気とは? 1PV
つまらない…。そんなふうに思ったり考えたりしてしまうことは誰にでもあると思います。そんな中どうやって生きていけばよいのか。どうやって対応していけばよいのか。様々なことを考えさせられます。それが人生なの…
そうだ!選挙に行こう!!今回は18才以上の選挙権初の参院選です。 1PV
(アイキャッチ画像は今回の参議院議員選挙のインターネット広告のスクリーンショットです。) いよいよ、明日7月10日は参議院議員選挙の投票日です。 投票日でもあり開票日でもあります。(投開票日) (今更…
アイドリングストップシステム異常警告灯表示対処方法 28PV
2010年前後以降の車に搭載されていることの多いアイドリングストップシステム。各自動車メーカーによって呼び名は異なりますが、機能としては信号待ちが長い時や停止時間が長い時などに勝手に(自動的に)アイド…
カーメイトのエンジンスターターでエラー15表示と対処方法 26PV
夏冬に特に重宝するのが、エンジンスターターです。 メーカーはCARMATEやCOMTECユピテルなど各社ありますが、一番のオススメはリモコンから多くの情報を得ることができるカーメイト製品です。 なぜか…
エクストレイルT32運転席側バイザーメッキモール剥がれ修復方法とオススメ両面テープ 23PV
車の購入後、乗ろうが乗らまいが経年劣化というものは付きものなのですが、特にプラスチック部分や両面テープ部分などは経年劣化がどうしても起きてきてしまいます。 そんな車でも長めにお気に入りの愛車となれば長…
アイドリングストップシステム異常警告灯表示対処方法 16PV
2010年前後以降の車に搭載されていることの多いアイドリングストップシステム。各自動車メーカーによって呼び名は異なりますが、機能としては信号待ちが長い時や停止時間が長い時などに勝手に(自動的に)アイド…
エクストレイルT32運転席側バイザーメッキモール剥がれ修復方法とオススメ両面テープ 13PV
車の購入後、乗ろうが乗らまいが経年劣化というものは付きものなのですが、特にプラスチック部分や両面テープ部分などは経年劣化がどうしても起きてきてしまいます。 そんな車でも長めにお気に入りの愛車となれば長…
カーメイトのエンジンスターターでエラー15表示と対処方法 10PV
夏冬に特に重宝するのが、エンジンスターターです。 メーカーはCARMATEやCOMTECユピテルなど各社ありますが、一番のオススメはリモコンから多くの情報を得ることができるカーメイト製品です。 なぜか…
今日は2025年4月4日です。
当ブログにも、ページの欄・所にコンタクトフォームを設けていて、
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
以下です。
続、プラグインなしでコンタクトフォームを作成方法 | せきろぐ
よろしくお願いします。
人気の商品が日替わりで登場。毎日お得なタイムセール「Amazonタイムセール全体」
PC Windows10 カスタマイズ ブラウザChrome 不具合 伝えたいこと 備忘録 設定
この年末年始は新型コロナウイルス感染症の自粛による影響で家にいらっしゃった方も多かったのではないでしょうか。(テレビなどで見る限りでは・・・。明治神宮など各神社や大社や大使なの有名所では・・・。)そん…
日本郵政は2007年に可決された郵政民営化後に徐々に郵便事業・簡易保険事業(かんぽ生命)貯金事業(ゆうちょ銀行)の3本柱を分社化し完全民営化してくということでした。郵政民営化法からもう少しで約20年に…
テレビリモコンって、意外とというか結構な確率で見つからないことってありますよね。そんなことで何度か夫婦ゲンカになったり、家族ゲンカになったり、兄弟ゲンカになったりと責任のなすりつけ合いになってしまうこ…
WordPressを使用すると、 アイキャッチ画像の設定が簡単に可能になります。 中でも人気のテーマStingerシリーズだとなおさらいろいろな機能が元々色々あってとても便利です。 そのStinger…
昨今では、「全然(ぜんぜん)」◯◯という言葉がある意味では普通になってきています。私の覚えている限りではおおよそ10年くらい前からでしょうか…。そもそも、「全然」という言葉は基本的には否定形な意味合い…
STINGER PLUS+ Stinger6 Stinger7 WordPress カスタマイズ テーマ 備忘録
現在の自分が使用しているテーマでの、 ショートコードを用いてテンプレートからショートコードを用いて任意のコードを表示させる方法の備忘録です。
ホワイトデープレゼントは以下などの豊富なキャンペーン商品から選ぶと良いと思います。
世界中でNo.1のシャアを誇るAmazonでのお得なお買い物でお得をしよう!!ネット通販なので、もちろん24時間年中無休です。健康商品から食品、車カスタマイズ商品、大手家電メーカー商品やパソコンの自作サプライ商品、その他アマゾン・プライムでは映画やドラマなど多くの作品や番組を見ることができます。マスクなど衛生商品も今では必須アイテム。一番信用できて一番商品数の多いAmazonでの買い物が絶対にオススメ!!
よろしかったらシェアよろしくお願いします。
[…] WordPressプラグインなしでコンタクトフォームを作成方法 – WordPressデビュー津々浦々 […]