J'ai un widget de zone de texte normal que j'utilise dans certaines barres latérales. Le widget texte génère un div dans un ul. Est-il possible de faire en sorte que le widget génère un autre ul li à la place?
<ul><h3>Heading</h3> <div class="textwidget">
vérifiez votre sidebar.php
et functions.php
du thème, la barre latérale définit le balisage en dehors du widget; la fonction register_sidebar()
définit le balisage avant le contenu des widgets; cette balise vous devez changer. Voir le codex pour cette fonction: codex register_sidebar ()
Plus précisément, vous devez examiner les paramètres before_widget
et after_widget
du tableau d'arguments register_sidebar()
.
Si l'appel register_sidebar()
ressemble à ceci:
register_sidebar(array( // Right Column widget area
'name'=>'Sidebar Right',
'id'=>'sidebar-right',
'description' => 'Right-column, half-width sidebar in three-column layout',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<div class="title">',
'after_title' => '</div>',
));
Puis changez ceci en ceci:
register_sidebar(array( // Right Column widget area
'name'=>'Sidebar Right',
'id'=>'sidebar-right',
'description' => 'Right-column, half-width sidebar in three-column layout',
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<div class="title">',
'after_title' => '</div>',
));
Plus précisément, vous changez ceci:
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
Pour ça:
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
Vous pouvez annuler l'enregistrement du widget par défaut:
unregister_widget( 'WP_Widget_Text' );
Enregistrez ensuite le vôtre avec un balisage personnalisé.
http://codex.wordpress.org/Widgets_API
http://azuliadesigns.com/create-wordpress-widgets/
Ou vous pouvez utiliser Javascript et lui dire simplement de régler le code HTML une fois le chargement du document terminé.
Vous pouvez également voir si le code souhaité est complètement imbriqué dans le balisage actuel et un style autour du balisage existant. Vous pouvez supprimer tous les effets secondaires négatifs que vous avez avec CSS.
Utilisez le widget de texte par défaut wordpress. Son nommé "Texte" dans votre zone de widget. Vous pouvez ajouter un widget texte illimité dans votre barre latérale. Chaque widget de texte crée un nouveau ul li. J'espère que tu comprends ce que je veux dire.