У меня есть простой пользовательский виджет, который запрашивает его ширину (который используется позже в переднем конце). Поле ширины является выпадающим списком, поэтому у пользователя есть предопределенные параметры.
У меня будет много экземпляров моего виджета, у каждого будет своя настройка ширины.
Теперь в моем коде виджета у меня есть следующий код:
echo $before_widget;
что приводит к:
<div class="widget my" id="my-widget-1"></div>
То, что я хотел бы сделать, это как-то подключиться $before_widget
и добавить свой собственный класс (указанную ширину из выпадающего списка). Итак, я хочу следующую разметку:
<div class="widget my col480" id="my-widget-3"></div>
И если не указан класс, то я хочу добавить class="col480"
.
Как мне этого добиться?
Спасибо за помощь! Даша
источник
Вы можете использовать
dynamic_sidebar_params
фильтр-хук, чтобы найти свой виджет и добавить к нему свои классы:источник
get_option('widget-name')
$before_widget
строку. Ваш ответ получил меня на правильный путь, обнаружив, что$before_widget
это строка.Еще один способ добавить класс для настраиваемого виджета, который я нашел, - это использовать ключ ' classname ' вашей функции конструкции, как в:
И обязательно используйте по умолчанию ' before_widget ' в своей теме или, если вы используете
register_sidebar()
в function.php, сделайте это так:Затем в каждом экземпляре вашего виджета у вас будет класс 'widget my-class-name', подобный этому:
Вы также можете сначала вызвать родительский конструктор, а затем добавить любое имя класса:
источник
сначала добавьте пользовательский класс заполнителя в конструктор
Затем замените его на классы по вашему выбору на основе параметров виджета, как это
Вы можете найти подробности с примером на http://satishgandham.com/2017/03/adding-dynamic-classes-custom-wordpress-widgets/
источник
Вы можете попробовать этот фильтр:
источник