Can shortcodes contain conditional statements? Even without them my shortcode renders blank page

your conditional breaks the concatenation of the strings (which is not in your code, anyway)

try to re-write this section:

function info($atts, $content = null) {        
extract(shortcode_atts(array(            
    "name" => '',            
    "image" => '',            
    "address" => '',            
    "phone" => '',            
    "email" => '',            
    "website" => '',            
    "description" => '',            
    "amenities" => ''        
    ), $atts)); 
$output="<span class="sort">"; 
if($image) { $output .= '<img src="'.$image.'" />';}
$output .= '<span class="name">'.$name.'</span> <span class="details">';
if($phone) { $output .= $phone; } 
if($address) { $output .= ' &bull; <a href="http://maps.google.com/?q='.$address.'" target="_blank">'.$address.' <img src="' . get_bloginfo('template_directory') . '/_/images/mapmarker.png" width="16" height="16" alt="Map" /></a><br/>'; } 
if($email) { $output .= ' <a class="infomail" href="mailto:'.$email.'">Send Email</a>'; } 
if($website) { $output .= ' <a class="infosite" href="'.$website.'">Visit Website</a>'; } 
if($description) { $output .= '<p class="infodetails">'.$description.'</p>'; } 
if($amenities) { $output .= '<p class="amenities">'.$amenities.'</p>'; } 
$output .= '</span> </span>'; 
return $output;
}

add_shortcode("info", "info");

Leave a Comment