WordPress : Comment ajouter une nouvelle zone de widget de barre latérale au thème enfant ?

Publié par Jean-Michel le

Je souhaite créer une nouvelle zone de widget de barre latérale dans l’en-tête de mon thème enfant. Quelle serait la meilleure façon de faire cela?

Voici le code de l’une des barres latérales du thème parent :

<?php
add_action( 'widgets_init', 'ci_widgets_init' );
if ( ! function_exists( 'ci_widgets_init' ) ) :
    function ci_widgets_init() {
        register_sidebar( array(
            'name'          => __( 'Blog Sidebar', 'ci_theme'),
            'id'            => 'blog-sidebar',
            'description'   => __( 'The list of widgets assigned here will appear in your blog posts.', 'ci_theme'),
            'before_widget' => '<aside id="%1$s" class="widget %2$s group">',
            'after_widget'  => '</aside>',
            'before_title'  => '<h3 class="widget-title"><span>',
            'after_title'   => '</span></h3>',
        ) );
    }

Puis-je simplement changer le name, idet description, et le mettre dans le functions.phpfichier de mon thème enfant ?

Solution n°1 trouvée

La réponse courte est oui, ajouter le widget directement dans le fichier functions.php du thème enfant est parfaitement acceptable.

Certains thèmes parents fournissent des recommandations sur la meilleure façon d’ajouter de nouvelles fonctionnalités dans les thèmes enfants (assistants, classes, modèles de conception spécifiques, etc.), de sorte que l’approche idéale peut varier d’un thème à l’autre.

Je suis heureux d’élaborer si vous pouvez fournir des informations supplémentaires sur votre configuration.

Solution n°2 trouvée

Eh bien, c’est ce qui a fonctionné pour moi. Dans mon functions.phpfichier j’ai mis le code suivant :

function header_widgets_init() {

register_sidebar( array(

    'name' => 'Header Sidebar',

    'id' => 'header_sidebar',

    'before_widget' => '<aside class="widget %2$s">',

    'after_widget' => '</aside>',

    'before_title' => '<h2 class="widget-title">',

    'after_title' => '</h2>',

) );

}

add_action( 'widgets_init', 'header_widgets_init' );

…et dans mon header.phpfichier j’ai utilisé :

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('header_sidebar') ) : endif; ?>
Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *