Les widgets de la sidebar WordPress ne se sauvegardent pas [WordPress]

[niveau: intermédiaire]

Vous utilisez WordPress et avez choisi un des nombreux thèmes gratuits qu’on trouve sur le Net. Et puis vous souhaitez utiliser la barre latérale (« sidebar ») pour afficher dynamiquement des widgets comme WordPress le permet ? Cependant vous remarquez que même en cliquant sur « Save », les widgets ajoutés ne se sauvegardent jamais…

Tout d’abord vous devez aller vérifier le fichier sidebar.php (« Barre latérale ») dans l’éditeur de votre thème.
Voici un exemple de ce que vous devriez avoir:

<ul id="sidebar">
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
 <li id="about">
  <h2>About</h2>
  <p>This is my blog.</p>
 </li>
 <li id="links">
  <h2>Links</h2>
  <ul>
   <li><a href="http://example.com">Example</a></li>
  </ul>
 </li>
<?php endif; ?>
</ul>

C’est le code par défaut qui fonctionne pour que la sidebar s’affiche correctement. Vous devriez donc d’abord tester en insérant ce code là. On notera que s’il n’y a pas de widgets, alors la barre affichera les deux éléments définis par défaut (ici « About » et « Links »).

Maintenant, il suffit d’activer la sidebar dans le fichier « functions.php » de votre thème. Pour cela, voici le code que vous devriez avoir dans ce fichier :

<?php
if ( function_exists('register_sidebar') )
    register_sidebar();
?>

C’est tout, seulement ces quatre lignes. Il dit à WordPress qu’il doit activer une sidebar. Maintenant, les widgets doivent pouvoir s’ajouter et se sauvegarder sans problème.

Supposons maintenant que vous ne voulez pas utiliser le code par défaut, mais que vous voulez une barre latérale un peu plus personnalisée.
Voici un exemple avec des div :

<div id="sidebar">
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
 <div class="mywidget">
  <h2 class="title">About</h2>
  <p>This is my blog.</p>
 </div>
 <div class="mywidget">
  <h2 class="title">Links</h2>
  <ul>
   <li><a href="http://example.com">Example</a></li>
  </ul>
 </div>
<?php endif; ?>
</div>

Et le code associé à mettre dans le fichier functions.php :

<?php
if ( function_exists('register_sidebar') )
    register_sidebar(array(
        'before_widget' => '<div class="monwidget">',
        'after_widget' => '</div>',
        'before_title' => '<h2 class="title">',
        'after_title' => '</h2>',
    ));
?>

Maintenant vos widgets devraient s’enregistrer sans problème !

(Source: http://automattic.com/code/widgets/themes/)

3 avis sur “Les widgets de la sidebar WordPress ne se sauvegardent pas [WordPress]

  1. Aymeric Auteur de la publication

    sebozor >tu dois enlever ce bout de code qui se trouve dans ta page : <!–
    Ainsi que les derniers TAGS de la page : –></div></div></body></html>

    Tout ce qui est compris entre <!– et –> est désactivé par les navigateurs normalement, c’est pourquoi tu ne le vois pas sous Firefox !

Laisser un commentaire

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

*