Wrapping von Shortcode-Inhalt in einem Bereich oder Link

Mein Shortcode enthält eine Switch-statement , die eine Ein-Wort-Wetterübersicht ausgibt. Dies wird korrekt angezeigt, wenn ich $summary = für return , aber ich kann nicht scheinen, dass es mit einem oder einem Link um den Inhalt funktioniert.

Was fehlt mir hier?

 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 ''.$summary.''; } // end switch 

Solutions Collecting From Web of "Wrapping von Shortcode-Inhalt in einem Bereich oder Link"

Verlassen Sie den switch , bevor Sie die endgültige return eingeben.

Wenn Sie am Ende des switch Blockes return , wird der switch Block bereits beendet, bevor er an die return statement gelangt (wegen der vorherigen übereinstimmenden break statementen).

Der korrekte CODE wird sein:

 // 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 ''.$summary.'';