Menu
テーマ切り替え

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

wordpress

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

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

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

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

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

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

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

例を実際に出力した結果

mai&#108@example.com

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

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

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

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

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

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

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

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

○○○

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

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

RU DESIGN
AUTHOR

RU DESIGN

個人開発者として、Webサイト制作やAIを活かした開発に取り組んでいます。このブログでは、私が実際に試して「これは使える!」と思った技術や、自作の便利ツールをシェアしています。一緒に技術を楽しんでいきましょう!

この記事をシェア:

関連記事