Могут ли короткие коды содержать условные утверждения? Даже без них мой shortcode отображает пустую страницу

Следующий код должен допускать короткий код, который включает в себя множество атрибутов, но не все атрибуты всегда могут присутствовать, и в этом случае я не хочу, чтобы содержательный элемент ничего показывал. Однако, с или без условных операторов, когда я загружаю файл моих функций, я получаю только пустую страницу на лицевой и обратной стороне.

Вот полный короткий код с условными утверждениями:

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) { '&bull; <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"); 

Спасибо за ваши предложения!

Solutions Collecting From Web of "Могут ли короткие коды содержать условные утверждения? Даже без них мой shortcode отображает пустую страницу"

ваш условный разрывает конкатенацию строк (в любом случае это не входит в ваш код)

попробуйте переписать этот раздел:

 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");