Creating an email link only if there's an email address

3 posts by 2 authors in: Forums > CMS Builder
Last Post: January 23, 2020   (RSS)

By CommonSenseDesign - January 23, 2020 - edited: January 23, 2020

Hi, there.

At the bottom of every page on my client's site, there's a list of names, each of which can be linked to an email address. Is there a way of only creating a link if an email address has actually been entered? i.e. leaving it as plain, unlinked text if a person doesn't have an email address.

If you scroll to the foot of this page, Ryan Daly - in the right column - doesn't want his email address listed, so it's been omitted. However, his name still appears as a link. www.tcmhomes.com/index.php

This is the code I'm currently using:

<?php foreach ($personnel_emailsRecords as $record): ?>
<?php echo htmlencode($record['title']) ?> - <a href="mailto:<?php echo htmlencode($record['email_address']) ?>"><?php echo htmlencode($record['name']) ?></a>
<?php endforeach ?>

Is there a solution, please?

By Deborah - January 23, 2020

Hi, CommonSenseDesign.

You believe you just need an "if" and "else" statements.

Give this a try:

<?php // if email address, show this
 if ($record['email_address']): ?>
<?php echo htmlencode($record['title']) ?> - <a href="mailto:<?php echo htmlencode($record['email_address']) ?>"><?php echo htmlencode($record['name']) ?></a>

<?php // if no email address, show this
 else: ?>
<?php echo htmlencode($record['title']) ?> - <?php echo htmlencode($record['name']) ?>
<?php endif ?>