WordPress : Comment remplacer une barre latérale enregistrée dans un thème parent lors de l’utilisation d’un thème enfant ?

Publié par Jean-Michel le

J’utilise actuellement un thème enfant et son thème parent a déjà enregistré des barres latérales.

Mon. le problème est que je veux changer la barre latérale dynamique du thème parent

De:

register_sidebar(array(
    'name' => 'Footer',
    'before_widget' => '<div class="span3">',
    'after_widget' => '</div>',
    'before_title' => '<h6 style="text-transform: uppercase !important; font-weight:600; !important">',
    'after_title' => '</h6><hr>',
));

À:

register_sidebar(array(
    'name' => 'Footer',
    'before_widget' => '<div class="span3">',
    'after_widget' => '</div>',
    'before_title' => '<h6 class="footer-widget-item">',
    'after_title' => '</h6><hr>',
));

Maintenant, comment suis-je censé faire ça ? J’ai trouvé ce crochet appelé after_setup_theme d’ici mais je suis un peu confus sur la façon de le faire. Dois-je désenregistrer la barre latérale puis l’enregistrer à nouveau ?


METTRE À JOUR:

Voici ma tentative mais cela n’a pas fonctionné:

add_action( 'after_setup_theme', 'parent_override' );
function parent_override() {
    unregister_sidebar('Footer');
    register_sidebar(array(
        'name' => 'Footer',
        'before_widget' => '<div class="span3">',
        'after_widget' => '</div>',
        'before_title' => '<h6 class="footer-widgets-item">',
        'after_title' => '</h6><hr>',
    ));
}

Solution n°1 trouvée

add_action( 'widgets_init', 'parent_override',11 );
function parent_override() {

    unregister_sidebar('sidebar-4');
    /** I have looked for the ID of the sidebar by looking at
     *  the source code in the admin.. and saw the widget's id="sidebar-4"
     */

    register_sidebar(array(
        'name' => 'Footer',
        'before_widget' => '<div class="span3">',
        'after_widget' => '</div>',
        'before_title' => '<h6 class="footer-widgets-item">',
        'after_title' => '</h6><hr>',
    ));
}

Solution n°2 trouvée

Voici ce qui a fonctionné :

add_action( 'after_setup_theme', 'parent_override' );
function parent_override() {

    unregister_sidebar('sidebar-4');
    /** I have looked for the ID of the sidebar by looking at
     *  the source code in the admin.. and saw the widget's id="sidebar-4"
     */

    register_sidebar(array(
        'name' => 'Footer',
        'before_widget' => '<div class="span3">',
        'after_widget' => '</div>',
        'before_title' => '<h6 class="footer-widgets-item">',
        'after_title' => '</h6><hr>',
    ));
}

Il semble que l’identifiant ne soit pas un slug du nom, et si vous n’avez pas spécifié d’identifiant lors de l’enregistrement de la barre latérale, il aura un identifiant de « sidebar-# »…

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 *