Tengo un widget personalizado simple que solicita su ancho (que se usa más adelante en el front-end). El campo de ancho es un menú desplegable de selección, por lo que un usuario tiene opciones predefinidas.
Tendré muchas instancias de mi widget, cada una tendrá su propia configuración de ancho.
Ahora, en mi código de widget tengo el siguiente código:
echo $before_widget;
lo que resulta en:
<div class="widget my" id="my-widget-1"></div>
Lo que me gustaría hacer es de alguna manera conectar $before_widget
y agregar mi propia clase (el ancho especificado en el menú desplegable de selección). Entonces, quiero el siguiente marcado:
<div class="widget my col480" id="my-widget-3"></div>
Y si no hay una clase especificada, entonces quiero agregar class="col480"
.
¿Cómo logro esto?
¡Gracias por la ayuda! Dasha
fuente
puedes usar
dynamic_sidebar_params
filter hook para encontrar tu widget y agregarle tus clases:fuente
get_option('widget-name')
$before_widget
cadena. Su respuesta me puso en el descubriendo que$before_widget
es una cadena. Gracias de nuevo :)Otra forma en que encontré agregar una clase para un widget personalizado es usar la tecla ' classname ' de su función de construcción como en:
Y asegúrese de usar el ' before_widget ' predeterminado en su tema o si lo usa
register_sidebar()
en function.php, hágalo así:Luego, en cada instancia de su widget, tendrá la clase 'widget my-class-name' como esta:
También puede llamar primero al constructor principal y luego agregar cualquier nombre de clase que desee:
fuente
primero agregue una clase de marcador de posición personalizada en el constructor
Luego, reemplácelo con la clase o clases que elija según las opciones de widget como esta
Puede encontrar los detalles con un ejemplo en http://satishgandham.com/2017/03/adding-dynamic-classes-custom-wordpress-widgets/
fuente
Puedes probar este filtro:
fuente