Обшивка содержимого короткого кода в диапазоне или ссылке

Мой shortcode включает оператор switch , который выводит сводку с одним словом. Это отображается правильно, когда я заменяю $summary = для return , но я не могу заставить его работать с <span> или ссылкой вокруг содержимого.

Что мне здесь не хватает?

 switch ( $weather['icon'] ) { case 'clear-day': case 'clear-night': $summary = 'sunny'; break; case 'wind': $summary = 'breezy'; break; case 'rain': $summary = 'drizzly'; break; case 'fog': $summary = 'foggy'; break; case 'cloudy': $summary = 'murky'; break; case 'partly-cloudy-day': case 'partly-cloudy-night': $summary = 'cloudy'; break; case 'snow': case 'sleet': $summary = 'snowy'; break; default: $summary = 'beautiful'; break; return '<span class="weather">'.$summary.'</span>'; } // end switch 

Solutions Collecting From Web of "Обшивка содержимого короткого кода в диапазоне или ссылке"

Выйдите из блока switch прежде чем устанавливать окончательный оператор return .

если вы поместите return в конце блока switch таким образом, блок switch уже заканчивается до того, как он return оператор return (из-за предыдущих совпадающих операторов break ).

Правильный КОД будет:

 // just in case $summary is not defined out side of the switch block $summary = ''; switch ( $weather['icon'] ) { case 'clear-day': case 'clear-night': $summary = 'sunny'; break; case 'wind': $summary = 'breezy'; break; case 'rain': $summary = 'drizzly'; break; case 'fog': $summary = 'foggy'; break; case 'cloudy': $summary = 'murky'; break; case 'partly-cloudy-day': case 'partly-cloudy-night': $summary = 'cloudy'; break; case 'snow': case 'sleet': $summary = 'snowy'; break; default: $summary = 'beautiful'; break; } // end switch return '<span class="weather">'.$summary.'</span>';