Ajouter une 2ème Sidebar dans un thème WordPress spécifique

Publié par Jean-Michel le

J’ai appris à ajouter des barres latérales supplémentaires, maintenant je dois comprendre comment ajouter une barre latérale supplémentaire en plus de celle déjà affichée dans le thème Librio ( wordpress.org/extend/themes/librio ).

Je ne sais absolument pas où chercher. Le code est un pur chaos et n’est pas explicite.

Mon sidebar.php contient le code suivant :

<div id="idontknow">
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar1') ) : ?>
<?php endif; ?>
</div>

Maintenant, si je duplique et ajoute le même code mais avec ‘sidebar2’, tout ce que j’obtiens est la 2ème barre latérale affichée à l’INTÉRIEUR de la 1ère barre latérale.

<div id="idontknow">
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar1') ) : ?>
<?php endif; ?>
</div>

<div id="ireallydont">
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar2') ) : ?>
<?php endif; ?>
</div>

Je ne veux pas ça. Je veux 2 barres latérales séparées côte à côte. Quelqu’un peut-il m’aider, jolie s’il vous plaît?

J’ai essayé d’expirer avec CSS et id=leftsidebar et id=rightsidebar, mais cela ne fonctionne tout simplement pas.

Juste pour clarifier à nouveau : j’ai 2 barres latérales ! J’ai même le bon code dans functions.php

if ( function_exists('register_sidebar') )
    register_sidebar(array('name'=>'sidebar1',
    'before_widget' => '<div class="block">',
    'after_widget' => '</div>',
    'before_title' => '<h3 class="widgettitle">',
    'after_title' => '</h3>',
));
register_sidebar(array('name'=>'sidebar2',
    'before_widget' => '<div class="block">',
    'after_widget' => '</div>',
    'before_title' => '<h3 class="widgettitle">',
    'after_title' => '</h3>',
));

Le problème est, comme mentionné, que la 2ème barre latérale nouvellement créée est affichée à l’intérieur de la 1ère barre latérale. Je veux que le thème soit modifié afin d’avoir 2 barres latérales distinctes.

Solution n°1 trouvée

Avez-vous essayé de changer l’identifiant de votre deuxième div de la barre latérale en id= »sidebar2″ ? C’est très difficile à dire sans voir le site/code mais il peut y avoir quelque chose dans le CSS qui fait que les deux barres latérales se chevauchent. Soit ça, soit le premier n’est pas fermé correctement.

Solution n°2 trouvée

Vous devez enregistrer une deuxième barre latérale.

créez un fichier functions.php (peut-être que ce fichier existe déjà) dans votre dossier de thème et ajoutez le code suivant :

    <?php
        register_sidebar(array('name'=>'sidebar'));
        register_sidebar(array('name'=>'sidebar2'));
    ?>

Maintenant, si vous allez dans votre section d’administration wordpress, vous devriez voir qu’il y a 2 barres latérales disponibles où vous pouvez ajouter des widgets.

Solution n°3 trouvée

Avez-vous mis vos divs de la barre latérale à l’intérieur de la div de la barre latérale de la librio ?

En d’autres termes, est-ce que tu sidebar.phpressembles à ça ?

<div id="sidebar">
    <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar1') ) : ?>

    <!-- default librio sidebar stuff goes here -->

    <?php endif; ?>

    <div id="sidebar2">
        <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar1') ) : ?>

        <!-- second sidebar stuff goes here -->

        <?php endif; ?>
    </div>
</div>

Lorsque j’ai fait cela, la deuxième barre latérale est apparue dans le cadre de la barre latérale de librio par défaut. Lorsque j’ai déplacé les éléments à l’ <div id="sidebar2">extérieur de <div id="sidebar">, le deuxième contenu de la barre latérale est apparu au bas de la page. Vous devrez modifier le CSS pour le déplacer ailleurs.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

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