WordPress : Ajouter une nouvelle zone de widget à un thème wordpress

Si vous êtes familier avec les thèmes WordPress, vous savez que de nombreux thèmes ont une barre latérale widgetisée. Cela signifie que vous pouvez ajouter, supprimer et réorganiser des widgets sur votre site Web WordPress en utilisant la section «widget» de votre tableau de bord WordPress.

Avoir une barre latérale widgetisée est très utile mais vous voudrez peut-être également widgetiser d’autres parties de votre thème WordPress. C’est très facile à faire, et une fois que votre thème est modifié, il sera simple pour vous, ou l’administrateur WordPress, de réorganiser cette zone de contenu dynamique.

Nous allons ajouter une zone de widget dans notre template principale, et faire en sorte que cette zone s’affiche que en page d’accueil.

En premier lieu, on ajoute dans l’index.php de notre thème l’appel de notre template de sidebar.

if(is_front_page()){
		   get_sidebar('widget-homepage');
}

On vérifie si on est dans notre page d’accueil, et on appelle notre sidebar que l’on nomme « widget-homepage ».

On créé ensuite un fichier template pour notre widget. Il doit être à la racine de votre thème et se nommer « sidebar-{widget-id} » (ici l’ID de notre widget c’est « widget-homepage »).
Dans ce fichier on fait appel à la fonction WordPress « dynamic_sidebar » qui créée notre zone.

Voici le contenu de notre fichier sidebar-widget-homepage.php

 <?php dynamic_sidebar( 'widget-homepage' ); ?>

Ni plus, ni moins.

Il nous faut ensuite dire à WordPress comment cette zone va être gérée. Et accessoirement, lui dire qu’elle existe.
Dans notre fichier functions.php nous allons ajouter ceci :

function add_widget_area($id, $name, $description) {
        register_sidebar([
            'name'          => __( $name ),
            'id'            => $id,
            'description'   => $description,
            'class'        => '',
    		'description'   => esc_html__( 'Add widgets here.', 'partitech' ),
    		'before_widget' => '<section id="%1$s" class="widget %2$s">',
    		'after_widget'  => '</section>',
    		'before_title'  => '<h2 class="np-block-title">',
    		'after_title'   => '</h2>',
        ]
        );
  
}

add_widget_area('widget-homepage', 'Homepage widget zone', 'zone widget homepage');

Il vous suffit ensuite d’aller dans le gestionnaire de widget de votre thème ou de WordPress et d’ajouter les widgets que vous souhaitez.

Selection_361
Gestion d’une zone widget dans le theme