1. TOP
  2. >カスタマイズ・小技>
  3. カスタムフィールドのメールアドレスをエンティティ化

カスタムフィールドのメールアドレスをエンティティ化

カスタマイズ・小技, 技術メモ, WordPress

2020/02/12
2022/07/21
カスタムフィールドのメールアドレスをエンティティ化

この記事は【2022年7月21日】が最後の更新のため、記事の内容が古い可能性があります。

WordPressのプラグイン等のフォームからの送信ではなく、カスタムフィールドに入力したメールアドレスから、送信出来るようにして欲しいとの要望がありました。

そのままではボットによる収集が気になるので、スパム対策をした方法での出力を記載します。

 

 

ワードプラスに用意されている関数を使用 antispambot()

これでエンティティ化(難読化・暗号化)します。

使い方の例として下記をご参照ください。

<?php echo antispambot("mail@example.com"); ?>

引数(例の場合、mail@example.com部分)がエンティティ化されます。

 

例を実際に出力した結果

mai&#108&#64;&#101;x&#97;&#109;p&#108;&#101;&#46;&#99;om

該当ページが読み込まれる度に出力内容も変わります。

 

 

カスタムフィールドの値を出力 mailtoでの記載方法

 

カスタムフィールドにメールアドレスを入力し出力する実際の方法です。

 

<a href="mailto:<?php $value = get_post_meta( get_the_ID(), 'user_mail', true ); echo antispambot("$value"); ?>?subject=">メールお問い合わせ</a>

上記の場合だと、メールアドレスは画面上には表示されませんが、ソースコードを確認してみてください。

カスタムフィールドの値(メールアドレス)がエンティティ化されています。

 

user_mailの部分をそれぞれ指定されているカスタムフィールドの値に変更してください。

 

 

このページを見ている方には必要ないと思いますが、mailtoの使い方もとりあえず載せておきます。

<a href=”mailto:メールアドレス?subject=件名&body=本文”>○○○</a>

 

 

今回の場合だけでなく、掲示板やオープンな会員サイト等でメールアドレスを直接表示させなければいけない場合にも利用できるかと思います。

いろいろ試してみてください。

 

 

 

- PR -

ニッチなテーマのイラスト素材投稿始めました。良かったら使ってください。
RU DESIGN/無料イラスト・フリー素材「イラストAC」

オリジナル絵本 Kindleにて出版
ナマケモノのふにゃまるちゃん

ドメイン取得は同じところで取得しておくと便利ですよ。
お名前.comは1円から購入(1年間)できるドメインがあるので、いろいろと便利で経済的です。
ホームページ制作ならRU DESIGN

関連記事

ワードプレス各バージョンと使用可能なPHPバージョン一覧
2024/01/29
 WordPressのバージョンによって使用可能なPHPのバージョンは異なってきます。PHPのバージョンによっては、ワードプレスが正常に動作しなかったり、テンプ...
古いMacに「ChromeOS 」をインストールして利用
2023/10/08
 Googleが提供しているChrome OS(クローム・オーエス)は、Linuxをベースとしたオペレーティングシステム(OS)の1つ。その中でPCやMACでも...
公式サポートが終了した古いMacに最新のmacOSをインストールするプロジェクト
2023/10/07
 古いMacに最新のmacOSをインストールするプロジェクト「OpenCore Legacy Patcher」(OCLP)は、Appleが提供する最新のmacO...
【WordPress】古い投稿を現在の日付で再投稿してくれるプラグイン「Republish Old Posts」
2023/08/31
注意:パーマリンクに日付が含まれている場合は、このプラグインを使用しないでください。SEOプラグイン「All in One SEO」との相性もよくないそうです。...
Crayon Syntax Highlighterの代替プラグイン「Enlighter」
2023/06/05
 ソースコードをきれいに表示させるのに役立っていた「Crayon Syntax Highlighter」ですが、更新も止まったままの状態で再開の目処はなさそうで...