web-dev-qa-db-fra.com

Meilleur moyen de créer plusieurs barres latérales

Je suis très au courant de how to make multiple sidebars. Mais je crois que ma manière n’est pas la bonne façon d’ajouter plusieurs barres latérales.

Voici comment j'ajoute plusieurs barres latérales

Si je veux simplement créer une barre latérale, j'utilise le fichier sidebar.php. MAIS si je veux utiliser une autre barre latérale, je dois créer un autre fichier php comme sidebar-new.php. Appelez ensuite ce fichier en tant que

 <?php 
      get_sidebar('new'); 
 ?>

Cela signifie que si je veux créer 4 sidebar alors je dois faire 4 fichiers php!

MAIS j'ai vu de nombreux thèmes (sur Wordpress Market) qui fournissent de nombreuses barres latérales, mais ils ne contiennent qu'un seul fichier php pour sidebar (sidebar.php)! Comment font-ils cela? J'ai déjà appris à créer des barres latérales avec Google, mais dans la recherche, je ne reçois que les résultats que j'utilise actuellement (créer plusieurs fichiers pour plusieurs barres latérales).

Alors, comment puis-je créer plusieurs sidebar sans créer plusieurs fichiers php !! ???

4
Rishabh

Définir un nouveau sidebar avec dans votre functions.php

<?php

if ( function_exists('register_sidebar') ) {

   register_sidebar(array(
   'before_widget' => '<li id="%1$s" class="widget %2$s">',
   'after_widget' => '</li>',
   'before_title' => '<h2 class="widgettitle">',
   'after_title' => '</h2>'
   ));

}?>

Une fois que ces fonctions sont définies, vous remarquerez que la barre latérale supplémentaire apparaît dans le tableau de bord WordPress sous l’option Apparence> Widgets. C’est ici que vous pouvez faire glisser tous vos widgets dans vos différentes barres latérales.

<?php

if ( function_exists('register_sidebar') ) {

   register_sidebar(array(
   'name' => 'sidebar 1',
   'before_widget' => '<div id="%1$s" class="widget %2$s">',
   'after_widget' => '</div>',
   'before_title' => '<h2>',
   'after_title' => '</h2>'
    ));

   register_sidebar(array(
   'name' => 'footer sidebar 1',
   'before_widget' => '<div id="%1$s" class="widget %2$s">',
   'after_widget' => '</div>',
   'before_title' => '<h2>',
   'after_title' => '</h2>'
   ));

}?>

Ajouter une nouvelle barre latérale à votre modèle

Dans votre fichier sidebar.php, modifiez l'appel de votre barre latérale existante pour inclure le nom que vous avez défini précédemment dans le fichier functions.php.

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar 1') ) : ?>

   <h2>Articles by month</h2>
   <ul>
      <?php wp_get_archives('title_li=&type=monthly'); ?>
   </ul>
   <h2>Categories</h2>
   <ul>
      <?php wp_list_categories('show_count=0&title_li='); ?>
   </ul>

<?php endif; ?>

Pour ajouter votre nouvelle barre latérale, vous pouvez copier le code ci-dessus ou simplement copier les lignes suivantes. Ajoutez ces lignes à l’endroit où vous souhaitez que vos nouveaux widgets apparaissent. Dans cet exemple, vous pouvez voir dans le nom que je mets le mien dans le pied de page de mon site Web. Comme auparavant, n’oubliez pas de spécifier le nom correct de la barre latérale. Dans le code ci-dessus, le code HTML qui apparaît entre les instructions php est celui qui apparaîtra si aucun widget n'est ajouté à votre barre latérale. Ce code "par défaut" peut évidemment être modifié pour correspondre à votre thème. Dans le code suivant, puisqu'il n'y a pas de code HTML supplémentaire, rien ne sera affiché à moins qu'un widget n'ait été ajouté dans la barre latérale de votre tableau de bord WordPress.

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('footer sidebar 1') ) : ?>
<?php endif; ?>
6
Owais Alam

Vous pouvez différencier les barres latérales inside sidebar.php. Je ne sais pas quel est votre but, mais supposons que vous souhaitiez des barres latérales différentes sur des publications/pages uniques et sur d'autres pages.

Dans votre functions.php, vous enregistreriez deux barres latérales avec les singular et default de id de la manière habituelle avec register_sidebar .

Ensuite, dans sidebar.php, vous incluriez quelque chose comme:

if (is_singular) {dynamic_sidebar('singular');}
else {dynamic_sidebar('default');}

Bien sûr, il y a plusieurs façons de varier. Vous pouvez afficher différentes barres latérales en fonction de la catégorie ou peut-être aucune barre latérale sur un modèle de page spécial appelé "une colonne".

3
cjbj

Vous pouvez créer plusieurs sidebar à l’aide de vc ou de wordpress editor via https://codecanyon.net/item/custom-sidebar-visual-editor-wordpress-plugin/17329853

0
Rachit