The following code is supposed to allow for a shortcode that includes many attributes, but not all of the attributes may always be present in which case I do not want the containing element to show anything. However, with or without the conditional statements, when I upload my functions file I receive only a blank page on the front and back end.
Here is the full shortcode with conditional statements:
function info($atts, $content = null) {
extract(shortcode_atts(array(
"name" => '',
"image" => '',
"address" => '',
"phone" => '',
"email" => '',
"website" => '',
"description" => '',
"amenities" => ''
), $atts));
return '<span class="sort">'
if($image) { '<img src="'.$image.'" />'}'
<span class="name">'.$name.'</span>
<span class="details">'
if($phone) { $phone }
if($address) { '• <a href="http://maps.google.com/?q='.$address.'" target="_blank">'.$address.' <img src="<?php bloginfo('template_directory'); ?>/_/images/mapmarker.png" width="16" height="16" alt="Map" /></a><br/>'}
if($email) { '<a class="infomail" href="mailto:'.$email.'">Send Email</a>' }
if($website) { '<a class="infosite" href="'$website'">Visit Website</a>' }
if($description) { '<p class="infodetails">'.$description.'</p>' }
if($amenities) { '<p class="amenities">'.$amenities.'</p>' }
'</span>
</span>';
}
add_shortcode("info", "info");
Thanks for your suggestions!
your conditional breaks the concatenation of the strings (which is not in your code, anyway)
try to re-write this section: