WordPressのプラグイン等のフォームからの送信ではなく、カスタムフィールドに入力したメールアドレスから、送信出来るようにして欲しいとの要望がありました。
そのままではボットによる収集が気になるので、スパム対策をした方法での出力を記載します。
ワードプラスに用意されている関数を使用 antispambot()
これでエンティティ化(難読化・暗号化)します。
使い方の例として下記をご参照ください。
<?php echo antispambot("mail@example.com"); ?>
引数(例の場合、mail@example.com部分)がエンティティ化されます。
例を実際に出力した結果
mail@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の使い方もとりあえず載せておきます。
今回の場合だけでなく、掲示板やオープンな会員サイト等でメールアドレスを直接表示させなければいけない場合にも利用できるかと思います。
いろいろ試してみてください。
