Mam prosty niestandardowy widget, który pyta o jego szerokość (która jest używana później w interfejsie użytkownika). Pole szerokości to rozwijane menu wyboru, więc użytkownik ma predefiniowane opcje.
Będę miał wiele wystąpień mojego widżetu, każdy będzie miał własną konfigurację szerokości.
Teraz w kodzie widżetu mam następujący kod:
echo $before_widget;
Co skutkuje w:
<div class="widget my" id="my-widget-1"></div>
Chciałbym się jakoś podłączyć $before_widget
i dodać własną klasę (określoną szerokość z menu rozwijanego wybierz). Więc chcę następujące znaczniki:
<div class="widget my col480" id="my-widget-3"></div>
A jeśli nie określono żadnej klasy, chcę dodać class="col480"
.
Jak to osiągnąć?
Dzięki za pomoc! Dasha
źródło
możesz użyć
dynamic_sidebar_params
haka filtru, aby znaleźć widget i dodać do niego swoje klasy:źródło
get_option('widget-name')
$before_widget
łańcucha. Twoja odpowiedź mnie wciągnęła właściwy utwór odkrycie, że$before_widget
jest to struna.Innym sposobem, w jaki znalazłem dodanie klasy dla niestandardowego widgetu, jest użycie klawisza „ classname ” funkcji konstruktora, jak w:
I pamiętaj, aby użyć domyślnego „ before_widget ” w motywie lub jeśli używasz
register_sidebar()
w function.php, zrób to tak:Następnie w każdym przypadku widgetu będziesz mieć klasę „widget my-class-name” w następujący sposób:
Możesz także najpierw wywołać konstruktor nadrzędny, a następnie dołączyć dowolną nazwę klasy:
źródło
najpierw dodaj niestandardową klasę zastępczą w konstruktorze
Następnie zamień go na wybraną przez siebie klasę w oparciu o takie opcje widżetu
Możesz znaleźć szczegóły z przykładem na http://satishgandham.com/2017/03/adding-dynamic-classes-custom-wordpress-widgets/
źródło
Możesz wypróbować ten filtr:
źródło