WordPress Logo

WordPressにはたくさんの便利な関数が最初から用意されています。
今日はその中の1つ「antispambot();」を紹介します。

この関数は指定した文字列をエンティティ化(難読化)してくれるもので、具体的にはメールアドレスをスパムボットに収集されにくくして、スパムメールから保護する働きがあります。

「antispambot();」関数の使い方。

この関数の使い方は簡単で、引数の部分でエンティティ化したい文字列を指定するだけです。

一例を挙げると次のようになります。

<?php echo antispambot( "info@sample.com" ); ?>

これで、表面上は「info@sample.com」と表示されますが、ソースコードの部分ではi&#110;fo&#64;sa&#109;&#112;l&#101;.&#099;&#111;m などと複雑に難読化された文字列で出力されるため、悪質な業者にメールアドレスが収集されにくくなるという仕組みです。

なおエンティティ化は関数が実行される度にランダムに生成されるので、アクセス毎にソースコードは変わってきます。

注意点

例えばワードプレスの投稿者のメールアドレスを表示させたい場合は、「the_author_email();」ではなく「get_the_author_email();」を使うなどの注意が必要です。

<?php echo antispambot( the_author_email() ); ?>

上記のコードでは「antispambot();」によるエンティティ化の前に「the_author_email();」による出力が行われてしまうので意味がありません。
正しくは以下のように「get_the_author_email();」を使うべきです。

<?php echo antispambot( get_the_author_email() ); ?>

最近はスパムボットも高機能化しているようで、エンティティ化されたメールアドレスでも解読して収集するというハナシを耳にします。

スパムメール対策とスパムボットの攻防はイタチゴッコかもしれませんが、もしウェブサイトにメールアドレスを表示する際は必ずこの機能を利用したほうがいいでしょう。