Les widgets font tellement partie intégrante des thèmes WordPress qu’il est difficile d’imaginer un thème WordPress sans widgets. Les widgets sont des scripts exécutables que vous pouvez simplement faire glisser et déposer dans vos colonnes latérales ou toute autre zone prête pour les widgets dans votre thème. Beaucoup de nos lecteurs utilisent les widgets pour ajouter des éléments personnalisés à leur colonne latérale. Cependant, cet article est destiné aux utilisateurs/utilisatrices curieux/euses qui veulent apprendre comment ajouter des colonnes latérales dynamiques prêtes à recevoir des widgets ou des zones prêtes à recevoir des widgets dans les thèmes WordPress.
Inscrire des colonnes latérales ou des zones prêtes à accueillir des widgets dans WordPress
La première chose à faire est d’inscrire votre colonne latérale ou votre zone de widget pour votre thème. Vous pouvez inscrire plusieurs colonnes latérales et zones prêtes à accueillir des widgets. Copiez et collez ce code dans le fichier functions.php de votre thème
function wpb_widgets_init() { register_sidebar( array( 'name' => __( 'Main Sidebar', 'wpb' ), 'id' => 'sidebar-1', 'description' => __( 'The main sidebar appears on the right on each page except the front page template', 'wpb' ), 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>', ) ); register_sidebar( array( 'name' =>__( 'Front page sidebar', 'wpb'), 'id' => 'sidebar-2', 'description' => __( 'Appears on the static front page template', 'wpb' ), 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>', ) ); } add_action( 'widgets_init', 'wpb_widgets_init' );
Dans ce code, nous avons inscrit deux colonnes latérales. Nous leur avons donné des noms et des descriptions pour les identifier sur l’écran Widgets. Le paramètre description peut être utilisé pour indiquer aux utilisateurs/utilisatrices où cette colonne latérale apparaît dans le thème. Le paramètre wpb est le nom du thème sur lequel nous travaillons, il est utilisé ici pour rendre ces chaines traducteur/traductrices. Vous devez le remplacer par le nom de votre thème.
Ajout de colonnes latérales dynamiques prêtes à recevoir des widgets dans les fichiers du thème WordPress
Jusqu’à présent, nous avons uniquement inscrit des colonnes latérales dynamiques. Les utilisateurs/utilisatrices peuvent glisser et déposer des widgets dans ces colonnes latérales à partir de l’écran Apparence » Widgets. Cependant, ces colonnes latérales n’apparaîtront pas sur votre site tant qu’elles ne seront pas appelées dans un Modèle comme sidebar.php
ou à tout autre endroit où vous souhaitez les afficher. Pour ajouter ces zones de widgets, modifiez le fichier de modèle dans lequel vous souhaitez les afficher et collez ce code :
<?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?> <div id="secondary" class="widget-area" role="complementary"> <?php dynamic_sidebar( 'sidebar-1' ); ?> </div> <?php endif; ?>
Dans cet exemple de code, nous avons utilisé l’ID de la barre latérale pour appeler la colonne latérale que nous voulons afficher ici. Modifiez l’ID de la colonne latérale pour afficher une autre colonne latérale. Par exemple, vous pouvez inscrire trois colonnes latérales dans la zone du pied de page et les appeler une par une dans le modèle footer.php
de votre thème.
Les widgets peuvent être très puissants. Vous pouvez ajouter des widgets au contenu de vos publications et de vos pages, rendre vos widgets de texte colorés ou étendre la puissance des widgets par défaut de WordPress. Des colonnes latérales prêtes à accueillir des widgets bien placés permettent aux utilisateurs/utilisatrices d’ajouter des éléments personnalisés à leur site à l’aide d’une interface simple de type « glisser-déposer ».
Nous espérons que cet article vous a aidé à apprendre comment ajouter des colonnes latérales dynamiques prêtes pour les widgets dans WordPress. Nous vous recommandons d’étudier le code des frameworks de thèmes tels que Genesis pour apprendre comment les professionnels les utilisent dans leurs produits. Pour toute question ou retour d’expérience, veuillez laisser un commentaire ci-dessous.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
nabil
hi i need two column in side bar ! how can i do that whit css
Jason
Where can i extend the functionality of my wordpress widgets
Milada
Hallo team again,
sorry to trouble you, but I would like to specify, that I would need one widget above the themes current Primary Sidebar widget on the right and the other widget on the left side from the article in the middle.
How should I proceed?
Thank you,
Milada
Milada
Hallo team again,
how do I add a field in the widget and which and where do I paste a field code to have there affiliate links?
Thank you,
Milada
Tanmay Bala
i want to learn how to use DB Plugin in wordpress and redux framework.
Marc
This tutorial was a great help.
Been trying to accomplish this for about a week now.
Nice and to-the-point.
Thank you!
Laura
I just wondered, before I actually paste the code, does this work on a theme that originally doesn’t come with a sidebar? I’m using Book Lite which only has footers.
WPBeginner Support
Yes, it does.
Administrateur
Laura
Thanks so far – I tried to register the sidebar but whenever I hit « save » I get the white screen of death – which I never had before. Any suggestions what could be wrong?
Lohith
Thanks Alot
Its really wonderful and simple method to explain….
Bakopu
Thank you very very much sir. Where are you sir , we want to take your blessings by touching your feet.
akhilesh
thanks sir these post have vry helpful for me
Marcos Nakamine
Worked perfectly
Thanks
gWorldz
I am having trouble getting the widget to display o.O
The widget is registering and displaying in the back-end properly with no issues, however, it will only show my widget content if I include content in the previous widget.
I’m using a 2011 child theme and registering an additional footer area.
functions.php snippet:
https://gist.github.com/gWorldz/76273b5901e1b5c4759b#file-functions-php
sidebar-footer.php
https://gist.github.com/gWorldz/b6177ccc9734718dd636#file-sidebar-footer-php
style.css
https://gist.github.com/gWorldz/0f24a9350da164ee2f29#file-style-css
Do you have any idea what I’m doing wrong or what is causing this issue?
Tiger
Did you ever get any help on this? I am having the same issue.
MJ
Just wanted to say thanks for this. I Googled to find out how to register a sidebar in WordPress, and hit a few other sites before this one, and yours had the best, clearest, most understandable directions. Well done.
arvind
your post is helpful to me,
thanks !!!!!!
Dharmendra Prajapati
Finally i got my dynamic widget ready sidebar after 23 days… I was googled all the sites.. and finally i redirected @ your site.
Thanks
Kevin
In the second snippet, where you are inserting the widget code into the template, where you have
div id= »secondary »
Should that id change with each widget area.
Ex:
First, Secondary, Third, fourth, etc
WPBeginner Support
Kevin yes you should, and it should be named after the widget area or the sidebar it is representing.
Administrateur
SS
Works for registering the sidebars but when I go to the Appearance » Widgets screen I see all my widgets but nothing to drag them into.
WPBeginner Support
SS, when you have successfully registered a dynamic widget ready sidebar it will appear on Widgets screen. This means that registering sidebars probably didn’t work.
Administrateur
Steve Smart
Hi –
This is a very helpful post. Thankyou!
I’ve been successful using one dynamic widget area, now I’m trying to implement more than one. Everything seems to work as expected, except an odd problem in the dashboard. If I drag a text widget to my second dynamic widget area I can add content as you would expect, and save it, and it produces output on my pages as expected, however if I now revisit the dashboard widgets page, the second widget area does not appear to contain any widgets.
I am using a twentytwelve-child theme, and Wordpress 3.7.1.
Any thoughts?
Jackson
Hearty thanks….You have done such a wonderful work…thanks thanks thanks…
JP
thanks, found this useful. right to the point.
Praveen Prasad
Can you tell me where is the Call Function Started ?
Ed Du
You can also use Headway with a additional block and it will take care of all of this. Or pagelines for that matter.