I have a custom field in a theme that contains an email address and was pleased to find antispambot()
<p><a href="https://wordpress.stackexchange.com/questions/124180/mailto:<?php antispambot(the_field("queries_e-mail')); ?>"> <?php echo antispambot(the_field('queries_e-mail'));?></a></p>
It looks fine and works as intended (ie. it opens a compose mail window) but when I view the code source it doesn’t appear to be encoded.
<p><a href="https://wordpress.stackexchange.com/questions/124180/mailto:john.doe@mysite.com"> john.doe@mysite.com</a></p>
According to the Codex the default usage is :
<?php echo antispambot("john.doe@mysite.com"); ?>
which should output:
john.doe@mysite.com
However the encoding doesn’t appear to be working in my case.
1 Answer
I think the problem is echo vs return,
i.e. that you are using the_field
instead of get_field
.
What you’re trying to do is similar to this:
antispambot( echo( 'john.doe@mysite.com' ) )
but echo
returns nothing.
Please try:
<?php $email = antispambot( get_field( 'queries_e-mail' ) ); ?>
<p>
<a href="https://wordpress.stackexchange.com/questions/124180/mailto:<?php echo $email; ?>">
<?php echo $email; ?>
</a>
</p>