WordPress : Comment puis-je insérer des widgets par défaut lorsque mon thème est activé (similaire à ce que fait Twenty Eleven) ?

Publié par Jean-Michel le

Lorsque le thème Twenty Eleven est activé, il insère plusieurs widgets par défaut dans ses barres latérales. Comment puis-je coder mon thème pour faire de même ?

Solution n°1 trouvée

Johannes Pille a raison Les widgets de TwentyEleven tels que Archives et Meta sont codés en dur dans leur sidebar.php

Voici ce que je ferais :

Définissez d’abord vos barres latérales dans votre functions.php comme suit :

 if ( function_exists('register_sidebars') )
    register_sidebar(array(
    'name'=>'Left Sidebar',
    'before_title' => '<h2 class="label">',
        'after_title' => '</h2>',
    'description' => 'Items placed here will be shown in the left sidebar.'));

Comme vous pouvez le voir dans le code ci-dessus, vous nommez la barre latérale « Barre latérale gauche ». Vous pouvez changer cela en ce que vous voulez, mais je choisis généralement d’utiliser des termes de placement afin de savoir sur quelle partie de la page le widget s’affichera.

Ensuite, vous voudrez mettre ceci dans votre thème où vous voulez que la barre latérale s’affiche :

<?php if(function_exists('dynamic_sidebar') && dynamic_sidebar('Left Sidebar')):else: ?>

Maintenant, vous voudrez mettre ceci ensuite :

<li id="calendar">
        <h2>
          <?php _e('Calendar'); ?>
        </h2>
        <?php get_calendar(); ?>
      </li>
      <?php wp_list_pages('title_li=<h2>Pages</h2>'); ?>
      <li>
        <h2>
          <?php _e('Categories'); ?>
        </h2>
        <ul>
          <?php wp_list_cats('sort_column=name&optioncount=1&hierarchical=0'); ?>
        </ul>
      </li>
      <li>
        <h2>
          <?php _e('Archives'); ?>
        </h2>
        <ul>
          <?php wp_get_archives('type=monthly'); ?>
        </ul>
      </li>
      <?php get_links_list(); ?>
      <li>
        <h2>
          <?php _e('Meta'); ?>
        </h2>
        <ul>
          <?php wp_register(); ?>
          <li>
            <?php wp_loginout(); ?>
          </li>
          <?php wp_meta(); ?>
        </ul>
      </li>
      <?php endif; ?>
    </ul>

La

ferme la fonction « if » au début de cette chaîne. Ce que cela fera, c’est que s’il n’y a pas de place large dans la barre latérale, ces valeurs par défaut apparaîtront jusqu’à ce qu’une soit ajoutée.

Si vous voulez qu’ils soient là tout le temps sans que personne ne le change, mais que vous voulez toujours qu’ils puissent ajouter leur propre contenu, vous pouvez simplement placer les widgets codés en dur en dehors des instructions « if » comme ceci :

<li id="calendar">
        <h2>
          <?php _e('Calendar'); ?>
        </h2>
        <?php get_calendar(); ?>
      </li>
      <?php wp_list_pages('title_li=<h2>Pages</h2>'); ?>
      <li>
        <h2>
          <?php _e('Categories'); ?>
        </h2>
        <ul>
          <?php wp_list_cats('sort_column=name&optioncount=1&hierarchical=0'); ?>
        </ul>
      </li>
      <li>
        <h2>
          <?php _e('Archives'); ?>
        </h2>
        <ul>
          <?php wp_get_archives('type=monthly'); ?>
        </ul>
      </li>
      <?php get_links_list(); ?>
      <li>
        <h2>
          <?php _e('Meta'); ?>
        </h2>
        <ul>
          <?php wp_register(); ?>
          <li>
            <?php wp_loginout(); ?>
          </li>
          <?php wp_meta(); ?>
        </ul>
      </li>

    </ul>
<?php if(function_exists('dynamic_sidebar') && dynamic_sidebar('Left Sidebar')):else: ?>
<?php endif; ?>

Je suggérerai pour les ajouter à votre thème (au cas où vous voudriez autre chose) que vous regardiez la référence de la fonction WordPress Codex ici : http://codex.wordpress.org/Function_Reference#Theme-Related_Functions

………………………………………….. ………………………………………….. ………………………………………….. ……………

Voici comment avoir un ensemble de widgets par défaut dans la zone d’administration.

Tout d’abord, vous devez savoir que WordPress est livré avec 12 widgets standard. Vous pouvez les consulter ici : http://codex.wordpress.org/Function_Reference/the_widget

Si vous souhaitez supprimer certains des widgets standard, voici comment procéder :

function remove_some_wp_widgets(){
unregister_widget('WP_Widget_Calendar'); //removes calendar widget
unregister_widget('WP_Widget_Search'); // removes the search widget
unregister_widget('WP_Widget_Recent_Comments'); // removes recent comments widget 
}

add_action('widgets_init',remove_some_wp_widgets', 1);

Vous ajouteriez le code ci-dessus dans votre fichier functions.php de votre thème. Cela les cachera. (pas nécessairement les supprimer)

Si vous souhaitez ajouter un widget personnalisé à la zone d’administration, je vous suggère de lire cet article sur la façon d’enregistrer un nouveau widget.

http://dev7studios.com/resources/wordpress-development-for-designers-part-1/

Solution n°2 trouvée

Dans les pages de votre barre latérale de thèmes, vous pouvez vérifier si un widget est actif dans votre barre latérale, puis faire un if, else.

//Check to see if your sidebar "main" is active.  Change to match your registered sidebar
if (is_active_sidebar('main')) {

    //echo holder div.  Give it a class for css
    echo '<div class="homeSidebar">';
    dynamic_sidebar('main');
    echo '</div>';
}

//if there is no active widget in this side bar, use this one.  
else {
    echo '<div class="homeSidebar">';

    //Run the_widget() to bring in the widget you want by default.  Take a look at http://codex.wordpress.org/Function_Reference/the_widget for more info
    the_widget('WP_Widget_Archives');
    echo '</div>';
}

Solution n°3 trouvée

Les (pseudo-)widgets intitulés « Archives » et « Meta » sont codés en dur dans sidebar.php de TwentyEleven .

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 *