<?php echo antispambot(get_the_author_email()); ?>
WordPressの上記機能使えばfunctions編集しなくても可能です。
http://codex.wordpress.org/Protection_From_Harvesters
あと、実装を見てみましたが、@の右側はホスト名になるはずなので、アンダースコア(_) が入る可能性はありません。逆に “ikeda,yuriko”@example.com のようなメールアドレスを抽出できない欠点もありますね (でも、こんな特殊なアドレスだったら、そもそもスパムが届かない気がするので対策は不要でしょうが)
ご意見ありがとうございます。
>takuyaさん
テーマを編集できる方はいいですが、
CMSを使うユーザーはスパムボットについて理解していない方も
使う可能性があることを考えると、
どんな投稿があってもエンコードされなければならないと思うのです。
>lilyfanさん
ありがとうございます。
この正規表現で今までやってこれたので、そのまま使いました。(^^;
アンダースコアは
携帯のアカウントで使われているので採用しています。
■ドコモのアカウント
半角英数字 3~30文字以内
「_」アンダーバー
「-」ハイフン
「.」ピリオド
■AUのアカウント
半角英数小文字 20文字以内
「-」ハイフン
「.」ピリオド
■softbank(ボーダフォン)のアカウント
半角英数字 3~30文字以内
「_」アンダーバー
「-」ハイフン
「.」ピリオド
以前に調べたときには
特殊なメールアカウントなど、メールアドレスを完全にマッチさせる正規表現を書こうとすると
そうとう長くなると聞きましたので、
一般的に使われるアカウントで作りました。
あ、間違えた。
>lilyfanさん
すいません。@マークの右側ですね。
左側のことを書いてしまいました。(^^;;
時間があるときに検討&勉強してみます。
そもそも、WordPress のテーマでメールアドレスが書かれるシーンは少ないですね。コメント欄に書いた場合も表示はされませんし。
あと、アドレス収集ボットもどんどん高性能化してて、HTML エンティティーぐらいは解読してきそうな気がします。個人的には、GD で画像化してしまうような実装の方がいいと思います;-)