UPDATE Reformulé la question
Sur la page de widget dorsale widgets.php
, il y a une liste de widgets disponibles. Les éléments de cette liste ont les mêmes classes et un ID généré dynamiquement , qui change si un nouveau widget est inséré (par ordre alphabétique) dans la liste. Il n’existe donc aucun moyen fiable de diriger les CSS vers des éléments individuels de la liste.
Existe-t-il un autre moyen de styliser des éléments individuels dans la liste des widgets?
Ancienne question plus étroite
J'ai un thème qui inclut une icône de police dans son nom complet. C'est défini globalement comme ceci:
$theme_data = wp_get_theme(); // Retrieves the theme data from style.css
$theme_name = $theme_data['Name'];
$theme_icon = '<i class="fa fa-wrench" style="font-family:FontAwesome;"></i>';
$theme_full_name = $theme_icon . ' ' . $theme_name;
Je peux utiliser $theme_full_name
dans les menus, les titres de page, etc. Il y a cependant une exception. Le thème comprend deux widgets, qui ont également $theme_full_name
dans leur nom (le deuxième paramètre dans le constructeur ). Sur la page widgets.php
de l'administrateur, seul le nom du thème apparaît. Apparemment, l’icône est supprimée (telle quelle, vraisemblablement, tout le code HTML pouvant figurer dans le nom du widget).
Existe-t-il un moyen de conserver l'icône de police dans le nom du widget?
Tout comme @MarkKaplun a mentionné dans un commentaire, c'est possible avec CSS. Aussi avec Javascript.
Regardons le widget Calendar , à titre d'exemple.
L'ID du widget, dans la liste des widgets disponibles , est de la forme:
widget-{integer}_calendar-__i__
et dans la barre latérale c'est:
widget-{integer}_calendar-{integer}
Si nous voulons afficher le dashicon du calendrier avant le titre du widget, nous pouvons par exemple mettre en file d'attente une feuille de style personnalisée pour le fichier widgets.php
, avec quelque chose comme:
div[id*="_calendar-"].widget .widget-title h3:before{
content: "\f145"; font-family: dashicons; margin-right: 0.5rem;
}
Ici, nous utilisons *=
pour trouver une correspondance de sous-chaîne dans le sélecteur id.
Il affichera comme ceci:
Si nécessaire, nous pourrions limiter cela davantage aux parties droites ou gauches :
#widgets-right
#widgets-left
ou les widgets disponibles:
#available-widgets
La page widgets.php
aura également body.widgets-php
si nécessaire pour les feuilles de style générales.