[WordPress] Shortcody w widgetach nie działają?

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” – wystarczy jedna linijka kodu dodana do pliku functions.php – najlepiej motywu potomnego lub osobnej wtyczki funkcyjnej.

add_filter('widget_text','do_shortcode');

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”.

Możesz to też zrobić prostą wtyczką

Istnieją w repozytorium wtyczki, które uaktywniają tę funkcjonalność, jednak posiadają wiele zbędnych, a nawet niebezpiecznych funkcji takich jak domyślne zezwolenie na wykonywanie kodu PHP w widgetach – Poniższa wtyczka zawiera tylko tę funkcjonalność i nie spowalnia działania strony.

[ninja-popup ID=778]

5/5 - (1 vote)
Powiązane tematy: WordPress

Na stronie mogą znajdować się linki polecające (affiliacyjne), które pozwalają utrzymać bloga. Zakup z mojego polecenia nie generuje dla Ciebie dodatkowych kosztów, a ja otrzymam prowizje od kwoty zapłaconej.

Przyłącz się do dyskusji