WordPress dynamic_sidebar n’analyse pas, supprime les modifications
Salut chers programmeurs,
Je suis relativement nouveau sur WordPress puisque j’utilisais habituellement Typo3, j’ai donc une question concernant les barres latérales personnalisées dans WP.
J’ai le code suivant dans mon functions.php
function custom_sidebars()
{
register_sidebars(4, array
(
'name' => __('Panel Startseite %d', 'me'),
'id' => 'panel-home-%d',
'description' => 'Widget Position for home panel',
'class' => 'panel-sidebar',
'before_widget' => '<div class="widget-panel-%d">',
'after_widget' => '</div>',
'before_title' => '<h2 class="panel-title">',
'after_title' => '</h2>'
));
$args2 = array
(
'name' => __('Short Bio Sidebar', 'me'),
'id' => 'shortbio-id',
'description' => 'Widget Position for short bio',
'class' => 'shortbio-sidebar',
'before_widget' => '<div class="widget-bio">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>'
);
register_sidebars(1, $args2);
}
add_action('widgets_init', 'custom_sidebars');
Je souhaite ajouter 4 panneaux d’informations sur ma page d’accueil et dans le pied de page un autre petit champ permettant à l’auteur d’ajouter une biographie ou de la modifier.
Voici mon code de mon index.php
<div id="main">
<div class="wrapper">
<div class="col-sm-6">
<div class="inner">
<?php dynamic_sidebar('panel-home-1'); ?>
</div>
</div>
<div class="col-sm-6">
<div class="inner">
<?php dynamic_sidebar('panel-home-2'); ?>
</div>
... and so on
La même implémentation est dans footer.php à une position donnée.
Mes problèmes sont :
- Le contenu que j’ajoute via les thèmes de menu backend -> les widgets ne s’affichent pas et est supprimé la prochaine fois que j’ouvre le backend.
- Il n’y a pas d’erreurs dans wp-content/debug.log , j’ai corrigé toutes les erreurs courantes après avoir activé l’option dans wp-config.php
Comment puis-je résoudre ce problème, quelles sont mes erreurs de réflexion de base ?
Meilleures considérations Kylo
Solution n°1 trouvée
Votre code est tout bon. Juste une erreur, vous utilisez %d
pour concaténer les décimales après votre identifiant. Mais ce n’est pas nécessaire puisque %d est automatiquement ajouté à l’identifiant fourni. Veuillez trouver le lien du codex à la fin de cette réponse.
Donc, j’ai supprimé le %d de la section id de votre code et maintenant cela fonctionne.
La solution:
function custom_sidebars()
{
register_sidebars(4, array
(
'name' => __('Panel Startseite %d', 'me'),
'id' => 'panel-home',
'description' => 'Widget Position for home panel',
'class' => 'panel-sidebar',
'before_widget' => '<div class="widget-panel">',
'after_widget' => '</div>',
'before_title' => '<h2 class="panel-title">',
'after_title' => '</h2>'
));
$args2 = array
(
'name' => __('Short Bio Sidebar', 'me'),
'id' => 'shortbio-id',
'description' => 'Widget Position for short bio',
'class' => 'shortbio-sidebar',
'before_widget' => '<div class="widget-bio">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>'
);
register_sidebars(1, $args2);
}
add_action('widgets_init', 'custom_sidebars');
et
<div id="main">
<div class="wrapper">
<div class="col-sm-6">
<div class="inner">
<?php dynamic_sidebar('panel-home'); ?>
</div>
</div>
<div class="col-sm-6">
<div class="inner">
<?php dynamic_sidebar('panel-home-2'); ?>
</div>
... and so on
Vous n’avez pas besoin d’ajouter %d à l’identifiant de register_sidebars. Veuillez lire le codex, il dit :
« %d » est ajouté automatiquement à la valeur ‘id’ fournie après la première ; par exemple, « Barre latérale-1 », « Barre latérale-2 », « Barre latérale-3 », etc.
Solution n°2 trouvée
Votre code est tout bon. Juste une erreur, vous utilisez %d
pour concaténer les décimales après votre identifiant. Mais ce n’est pas nécessaire puisque %d est automatiquement ajouté à l’identifiant fourni. Veuillez trouver le lien du codex à la fin de cette réponse.
Donc, j’ai supprimé le %d de la section id de votre code et maintenant cela fonctionne.
La solution:
function custom_sidebars()
{
register_sidebars(4, array
(
'name' => __('Panel Startseite %d', 'me'),
'id' => 'panel-home',
'description' => 'Widget Position for home panel',
'class' => 'panel-sidebar',
'before_widget' => '<div class="widget-panel">',
'after_widget' => '</div>',
'before_title' => '<h2 class="panel-title">',
'after_title' => '</h2>'
));
$args2 = array
(
'name' => __('Short Bio Sidebar', 'me'),
'id' => 'shortbio-id',
'description' => 'Widget Position for short bio',
'class' => 'shortbio-sidebar',
'before_widget' => '<div class="widget-bio">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>'
);
register_sidebars(1, $args2);
}
add_action('widgets_init', 'custom_sidebars');
et
<div id="main">
<div class="wrapper">
<div class="col-sm-6">
<div class="inner">
<?php dynamic_sidebar('panel-home'); ?>
</div>
</div>
<div class="col-sm-6">
<div class="inner">
<?php dynamic_sidebar('panel-home-2'); ?>
</div>
... and so on
Vous n’avez pas besoin d’ajouter %d à l’identifiant de register_sidebars. Veuillez lire le codex, il dit :
« %d » est ajouté automatiquement à la valeur ‘id’ fournie après la première ; par exemple, « Barre latérale-1 », « Barre latérale-2 », « Barre latérale-3 », etc.
0 commentaire