Przeglądając forum pomocy WordPress odnalazłem takie oto pytanie, które mi przypomniało, że miałem napisać wpis o tym jak dodać wsparcie dla shortcodów w widgetach, a nie tylko we wpisach i na stronach:
Zainstalowałem na stronie plugin Logo Showcase (…). Tym razem jest inaczej. Zamiast zadziałać i zacząć wyświetlać loga, pokazuje tylko shortcode [logoshowcase] . Shortcode dodany jest w widgecie „teskt”
Na początek warto dodać, że większość motywów domyślnie ma uaktywnioną obsługę shortcodów w widgetach tak jak np. Twenty Seventeen (zdjęcie poniżej).
Jednak, jeżeli wsparcie to nie jest uaktywnione i zamiast oczekiwanej treści widzimy wpisaną treść „czystym tekstem” .
add_filter('widget_text','do_shortcode');
Jak dodać ten kod do WordPress?
Kod ten dodaj do motywu w pliku functions.php, najlepiej motywu potomnego lub własnej wtyczki funkcyjnej. Przed „?>” na końcu pliku (może tego fragmentu nie być i wtedy po prostu na końcu). Więcej szczegółów w artykule: Własny kod w WordPress.
Dzieje się tak dlatego, ponieważ WordPress filtruje i ogranicza działanie shortcodów tylko do edytora wpisów i stron, a ten kod dodaje odpowiednie uprawnienia dla widgetu „Text”.