ITSkillsCenter
WordPress

Tutoriel : Les widgets WordPress — utilisation et création

8 min de lecture

Les widgets WordPress : ajouter des fonctionnalités sans coder

Les widgets sont des petits modules que vous glissez dans les zones prédéfinies de votre thème (sidebar, footer, header) pour ajouter du contenu et des fonctionnalités. Recherche, articles récents, catégories, formulaire de newsletter — ce sont tous des widgets. Depuis WordPress 5.8, les widgets utilisent l’éditeur de blocs Gutenberg, ce qui les rend beaucoup plus puissants.

Accéder aux widgets

Deux méthodes :

  • Apparence → Widgets : L’interface principale pour gérer tous les widgets
  • Personnaliser → Widgets : Aperçu en temps réel pendant que vous modifiez

Les zones de widgets disponibles dépendent de votre thème. Les plus courantes :

  • Sidebar (barre latérale) : À droite ou à gauche de vos articles
  • Footer 1, 2, 3 : Colonnes du pied de page
  • Header : Zone au-dessus ou en-dessous du menu (selon le thème)

Les widgets essentiels pour votre site

Widget Recherche

Indispensable si vous avez plus de 20 articles. Placez-le en haut de la sidebar.

Widget Articles récents

Affiche les derniers articles publiés. Gardez 5 articles maximum pour ne pas surcharger la sidebar.

Widget Catégories

Aide les visiteurs à naviguer par thème. Si vous avez beaucoup de catégories, utilisez le format « Liste déroulante » pour gagner de l’espace.

Widget HTML personnalisé

Le plus polyvalent. Permet d’insérer n’importe quel HTML, CSS ou JavaScript. Exemples d’utilisation :

Bannière de promotion

<div style="background:#2563EB; color:white; padding:24px; border-radius:12px; text-align:center;">
  <h3 style="margin:0 0 8px; font-size:1.25rem;">Formation WordPress</h3>
  <p style="margin:0 0 16px; opacity:0.9;">Apprenez à créer votre site pro en 30 jours</p>
  <a href="/formation" style="background:white; color:#2563EB; padding:10px 24px; border-radius:8px; text-decoration:none; font-weight:600; display:inline-block;">
    En savoir plus →
  </a>
</div>

Bouton WhatsApp

<a href="https://wa.me/221770000000" 
   target="_blank" rel="noopener"
   style="display:flex; align-items:center; gap:10px; background:#25D366; color:white; padding:14px 20px; border-radius:10px; text-decoration:none; font-weight:600;">
  💬 Contactez-nous sur WhatsApp
</a>

Compteur de stats

<div style="display:grid; grid-template-columns:1fr 1fr; gap:16px; text-align:center;">
  <div style="background:#F3F4F6; padding:16px; border-radius:8px;">
    <div style="font-size:2rem; font-weight:800; color:#2563EB;">500+</div>
    <div style="font-size:0.875rem; color:#6B7280;">Articles publiés</div>
  </div>
  <div style="background:#F3F4F6; padding:16px; border-radius:8px;">
    <div style="font-size:2rem; font-weight:800; color:#2563EB;">10K+</div>
    <div style="font-size:0.875rem; color:#6B7280;">Lecteurs/mois</div>
  </div>
</div>

Widgets par blocs (depuis WordPress 5.8)

Depuis WordPress 5.8, les zones de widgets acceptent les blocs Gutenberg. Vous pouvez donc ajouter :

  • Bloc Image : Logo, bannière, photo
  • Bloc Paragraphe : Texte de description
  • Bloc Boutons : CTA stylisés
  • Bloc Derniers articles : Version améliorée avec images miniatures
  • Bloc Icônes de réseaux sociaux : Liens vers vos profils
  • Bloc Groupe : Pour regrouper plusieurs blocs avec un fond coloré

Créer un widget personnalisé (pour développeurs)

Si vous avez besoin d’une fonctionnalité spécifique, créez votre propre widget :

Exemple : Widget « À propos de l’auteur »

class ITSC_Author_Widget extends WP_Widget {
    
    public function __construct() {
        parent::__construct(
            'itsc_author_widget',
            'À Propos de l\'Auteur',
            array('description' => 'Affiche une bio de l\'auteur avec photo et liens sociaux')
        );
    }
    
    // Formulaire d'administration
    public function form($instance) {
        $name = !empty($instance['name']) ? $instance['name'] : '';
        $bio = !empty($instance['bio']) ? $instance['bio'] : '';
        $whatsapp = !empty($instance['whatsapp']) ? $instance['whatsapp'] : '';
        ?>
        <p>
            <label for="<?php echo $this->get_field_id('name'); ?>">Nom :</label>
            <input class="widefat" type="text" 
                   id="<?php echo $this->get_field_id('name'); ?>" 
                   name="<?php echo $this->get_field_name('name'); ?>" 
                   value="<?php echo esc_attr($name); ?>">
        </p>
        <p>
            <label for="<?php echo $this->get_field_id('bio'); ?>">Bio :</label>
            <textarea class="widefat" rows="4"
                      id="<?php echo $this->get_field_id('bio'); ?>" 
                      name="<?php echo $this->get_field_name('bio'); ?>"><?php echo esc_textarea($bio); ?></textarea>
        </p>
        <p>
            <label for="<?php echo $this->get_field_id('whatsapp'); ?>">WhatsApp :</label>
            <input class="widefat" type="text"
                   id="<?php echo $this->get_field_id('whatsapp'); ?>" 
                   name="<?php echo $this->get_field_name('whatsapp'); ?>" 
                   value="<?php echo esc_attr($whatsapp); ?>"
                   placeholder="+221770000000">
        </p>
        <?php
    }
    
    // Sauvegarde des options
    public function update($new_instance, $old_instance) {
        $instance = array();
        $instance['name'] = sanitize_text_field($new_instance['name']);
        $instance['bio'] = sanitize_textarea_field($new_instance['bio']);
        $instance['whatsapp'] = sanitize_text_field($new_instance['whatsapp']);
        return $instance;
    }
    
    // Affichage côté front
    public function widget($args, $instance) {
        echo $args['before_widget'];
        ?>
        <div class="author-widget">
            <img src="<?php echo get_avatar_url(get_the_author_meta('ID'), array('size' => 120)); ?>" 
                 alt="Photo de <?php echo esc_attr($instance['name']); ?>"
                 class="author-photo">
            <h3 class="author-name"><?php echo esc_html($instance['name']); ?></h3>
            <p class="author-bio"><?php echo esc_html($instance['bio']); ?></p>
            <?php if (!empty($instance['whatsapp'])) : ?>
            <a href="https://wa.me/<?php echo esc_attr(str_replace('+', '', $instance['whatsapp'])); ?>" 
               class="author-whatsapp">
               💬 Me contacter
            </a>
            <?php endif; ?>
        </div>
        <?php
        echo $args['after_widget'];
    }
}

// Enregistrer le widget
function itsc_register_author_widget() {
    register_widget('ITSC_Author_Widget');
}
add_action('widgets_init', 'itsc_register_author_widget');

CSS pour le widget auteur

.author-widget {
    text-align: center;
    padding: 24px;
    background: #F9FAFB;
    border-radius: 12px;
}

.author-photo {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #E5E7EB;
}

.author-name {
    font-size: 1.125rem;
    font-weight: 700;
    margin: 12px 0 4px;
}

.author-bio {
    font-size: 0.875rem;
    color: #6B7280;
    line-height: 1.5;
}

.author-whatsapp {
    display: inline-block;
    margin-top: 12px;
    padding: 8px 20px;
    background: #25D366;
    color: white;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.875rem;
}

Widgets recommandés par type de site

Blog / site de contenu

  • Recherche
  • Articles récents (avec miniatures)
  • Catégories
  • Formulaire de newsletter
  • Widget « À propos »
  • Réseaux sociaux

Site vitrine / entreprise

  • Horaires d’ouverture
  • Adresse et carte
  • Bouton WhatsApp / téléphone
  • Témoignages clients
  • CTA vers la page contact

E-commerce WooCommerce

  • Recherche produits
  • Catégories de produits
  • Produits récents / en promotion
  • Filtre par prix
  • Panier mini

Organiser le footer avec des widgets

La plupart des thèmes proposent 3-4 zones de footer. Organisation recommandée :

Footer colonne 1 : À propos

  • Logo du site
  • Description courte (2-3 lignes)
  • Icônes réseaux sociaux

Footer colonne 2 : Navigation

  • Menu de navigation (widget Menu)
  • Liens vers les pages importantes

Footer colonne 3 : Services / Ressources

  • Liste de liens vers vos services ou ressources principales

Footer colonne 4 : Contact

  • Adresse (Dakar, Sénégal)
  • Téléphone cliquable
  • Email
  • Bouton WhatsApp

Widgets conditionnels

Parfois, vous voulez afficher un widget seulement sur certaines pages. Le plugin Widget Options (gratuit) ajoute des conditions d’affichage :

  • Afficher seulement sur la page d’accueil
  • Masquer sur mobile
  • Afficher seulement dans une catégorie spécifique
  • Afficher seulement aux visiteurs non connectés

Exemple pratique : affichez un widget « Inscription newsletter » partout sauf sur la page newsletter elle-même.

Performance des widgets

Chaque widget ajoute du poids à votre page. Bonnes pratiques :

  • Limitez le nombre : 5-6 widgets en sidebar maximum. Au-delà, c’est du bruit visuel
  • Évitez les widgets lourds : Les widgets de réseaux sociaux qui chargent des scripts externes (embed Instagram, Facebook) ralentissent considérablement la page
  • Pas de widget sur mobile : La sidebar est généralement masquée ou poussée en bas sur mobile. Ne comptez pas dessus pour le contenu critique
  • Cache : Les widgets sont rechargés à chaque page. Si un widget fait des requêtes API, utilisez le cache transient de WordPress

L’avenir des widgets : les blocs

WordPress évolue vers le Full Site Editing où tout est géré par des blocs. Les widgets « classiques » (ancienne API) sont progressivement remplacés par des blocs dans les zones de widgets. Si vous créez un nouveau widget aujourd’hui, envisagez de le créer comme un bloc Gutenberg plutôt qu’avec l’API WP_Widget — c’est l’approche recommandée pour la pérennité.

Pour les thèmes FSE (Full Site Editing) comme Twenty Twenty-Four, les zones de widgets n’existent plus — le footer et la sidebar sont directement modifiables dans l’éditeur de site (Apparence → Éditeur). C’est plus flexible mais nécessite de repenser votre approche si vous venez de l’ancien système.

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 350.000 FCFA
Parlons de Votre Projet
Publicité