web-dev-qa-db-fra.com

Comment ajouter une nouvelle zone de widget de la barre latérale au thème de l'enfant?

Je souhaite créer une nouvelle zone de widget dans l'encadré 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 les variables name, id et description et les placer dans le fichier functions.php de mon thème enfant?

1
jrcollins

Eh bien, c'est ce qui a fonctionné pour moi. Dans mon fichier functions.php 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 fichier header.php que j'ai utilisé:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('header_sidebar') ) : endif; ?>
2
jrcollins

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 (aides, classes, modèles de conception spécifiques, etc.). L'approche idéale peut donc varier d'un thème à l'autre.

Je serai ravi de préciser si vous pouvez fournir des informations supplémentaires sur votre configuration.

1
dswebsme