コンテンツ
antispambot()でメールアドレスをエンティティ化
WordPressでメールアドレスを表示させる場合には、antispambot()でエンティティ化して出力します。
メールアドレスをエンティティ化することで、スパムボットに収集されにくくするためです。
スパムメールが大量に送られてくるのは困りますからね!
使い方は、こんな感じです。
<?php echo antispambot("メールアドレス"); ?>
例えば、
<?php echo antispambot("info@example.com"); ?>
を実行すると、このようにメールアドレスを暗号化することが出来ます。
具体的には、以下の様な使い方が出来ますね。
<a href="mailto:<?php echo antispambot("info@example.com "); ?>"><?php echo antispambot("info@example.com "); ?></a>
もし、投稿者のメールアドレスを表示させる場合には、このように書くことも出来ますね。
<?php echo antispambot( get_the_author_email() ); ?>
記事投稿画面(エディタ)で使用する場合
記事の投稿画面にメールアドレスを貼り付ける場合には、
ショートコード化しておくと便利です。
ショートコードには、自己完結型と囲み型があります。
自己完結型ショートコード
自己完結型のショートコードを書くのであれば、このようになります。
function antispambot_shortcode($atts){
extract(shortcode_atts(array(
"mailto" => "",
"txt" => ""
), $atts));
if( is_email($txt) ) $txt = antispambot($txt);
return "<a href=\"mailto:" . antispambot($mailto) . "\">" . esc_html(antispambot($txt)) ."</a>";
}
add_shortcode("email", "antispambot_shortcode");
使い方は、このようになります。
[email mailto="info@example.com" txt="お問合せはこちらから"]
や
[email mailto="info@example.com" txt="info@example.com"]
囲み型ショートコード
囲み型のショートコードを書くのであれば、このようになります。
function antispambot_shortcode($atts, $mailto = null){
if( !is_email($mailto) ) return;
return "<a href=\"mailto:" . antispambot($mailto) . "\">" . esc_html(antispambot($mailto)) ."</a>";
}
add_shortcode("email", "antispambot_shortcode");
もし、
リンクなしで表示したい場合には、
return "<a href=\"mailto:" . antispambot($mailto) . "\">" . esc_html(antispambot($mailto)) ."</a>";
を
return antispambot($mailto);
に変更してください。
使い方は、このようになります。
[email]info@example.com[/email]
この記事へのコメントはありません。