投稿やページ内のメールアドレスをエンティティ化するショートコード
投稿やページの中でメールアドレスを入力したいときがあるとおもいます。
しかしそのままaa@bb.ccのように書くと悪意のあるメールアドレス収集プログラムに使われてしまうかもしれない。
そこで@だけ文字を変えたり、アドレスを画像化したり色々対策があります。
その中にエンティティ化という、文字を数字の羅列にして表示する(ソースでは数字の羅列だがhtmlで表示すると普通の文字に見える)
方法があるのですが、Wordpressにはantispambotという文字の一部のみをエンティティ化してくれる便利な関数があります。
というわけでこれを投稿やページ内で作れるようなショートコードを作成しました。
エンティティ化関数
//エンティティ化 function toentity_func($atts) { extract(shortcode_atts(array( 'text' => '', ), $atts)); return antispambot($text); } add_shortcode('toentity', 'toentity_func');
これをfunctions.phpに記入して、文字をエンティティ化したい場所で
[[toentity text=”toentity”] text=”aaa@bbb.ccc”]
のように書くと文字がエンティティ化されます。英数字のみで日本語は多分対応してません。
例)
通常
aaa@bbb.ccc
エンティティ
[toentity text=”aaa@bbb.ccc”]
両方同じに見えるはずです。コピーペーストしても同じだと思います。
しかしソースを見てみると、エンティティのほうは謎の文字列になっているとおもいます。
それでBOTに収集される可能性はかなり減ります。
[…] This post was mentioned on Twitter by わかめニュース(プログラミング), ゴーゴーウェブ池田. ゴーゴーウェブ池田 said: 【BLOG】 投稿やページ内のメールアドレスをエンティティ化するショートコード: 投稿やページの中でメールアドレスを入力したいときがあるとおもいます。 しかしそのままaa@bb.ccのように書くと悪意のあるメールア… http://bit.ly/h0G3Vr #55w […]