J'ai un widget personnalisé simple qui demande sa largeur (qui sera utilisé plus tard dans le frontal). Le champ largeur est une liste déroulante de sélection, donc un utilisateur a des options prédéfinies.
J'aurai de nombreuses instances de mon widget, chacune aura sa propre configuration de largeur.
Maintenant, dans mon code widget, j'ai le code suivant:
echo $before_widget;
ce qui se traduit par:
<div class="widget my" id="my-widget-1"></div>
Ce que j'aimerais faire, c'est d'une manière ou d'une autre $before_widget
me connecter et ajouter ma propre classe (la largeur spécifiée dans la liste déroulante). Donc, je veux le balisage suivant:
<div class="widget my col480" id="my-widget-3"></div>
Et s'il n'y a pas de classe spécifiée, je veux ajouter class="col480"
.
Comment puis-je y parvenir?
Merci pour l'aide! Dasha
la source
vous pouvez utiliser un
dynamic_sidebar_params
crochet de filtre pour trouver votre widget et y ajouter vos classes:la source
get_option('widget-name')
$before_widget
chaîne. Votre réponse m'a mis sur le bonne piste en découvrant que$before_widget
c'est une chaîne. Merci encore :)Une autre façon que j'ai trouvée pour ajouter une classe pour un widget personnalisé est d'utiliser la clé ' classname ' de votre fonction de construction comme dans:
Et assurez-vous d'utiliser par défaut ' before_widget ' dans votre thème ou si vous utilisez
register_sidebar()
dans function.php, faites-le comme ceci:Ensuite, sur toutes les instances de votre widget, vous aurez la classe 'widget my-class-name' comme ceci:
Vous pouvez également appeler le constructeur parent en premier, puis ajouter le nom de classe que vous souhaitez:
la source
ajoutez d'abord une classe d'espace réservé personnalisée dans le constructeur
Ensuite, remplacez-le par la ou les classes de votre choix en fonction des options de widget comme celle-ci
Vous pouvez trouver les détails avec exemple sur http://satishgandham.com/2017/03/adding-dynamic-classes-custom-wordpress-widgets/
la source
Vous pouvez essayer ce filtre:
la source