WordPress : Les widgets WordPress ne s’affichent pas sur le thème personnalisé

Publié par Jean-Michel le

J’ai construit un thème wordpress personnalisé, et j’ai également construit une barre latérale de widget personnalisée (pour que les widgets soient activés), je peux voir le titre du widget, mais le contenu ne s’affiche pas. Par exemple, j’utilise un widget de sondage, le titre est exactement tel que je l’ai défini, mais le contenu est complètement vide.

Dans l’en-tête, les scripts du plugin sont chargés, mais encore une fois, il n’y a pas de contenu. J’ai essayé plusieurs plugins, et ils font tous la même chose. J’ai également essayé cela en utilisant do_shortcode() et encore une fois, pas de contenu. Donc je suis perplexe.

J’ai également essayé d’obtenir de l’aide sur le forum wordpress, mais je n’ai jamais réussi à obtenir une réponse à ma requête.

J’espère que quelqu’un a eu ce même problème et peut m’indiquer quel peut être le problème.

Dans l’en-tête, j’ai inclus les informations suivantes :

<html <?php language_attributes(); ?>>
<meta charset="<?php bloginfo( 'charset' ); ?>" />
<?php wp_head();?>
<?php wp_meta();?>
<?php wp_print_scripts();?>

Cependant encore une fois, aucun résultat. Les recherches sur Google n’ont également rien révélé à propos de ce problème. Voici la chose étrange, je conçois tous les thèmes wordpress de la même manière, dont la plupart sont tous hébergés sur le même serveur, et c’est le seul thème ayant ce problème.

J’ai également inclus mon script functions.php à des fins de référence.

<?php
function twentyten_widgets_init() {

    register_sidebar( array(
        'name' => __( 'Primary Widget Area', 'twentyten' ),
        'id' => 'primary-widget-area',
        'description' => __( 'Add widgets here to appear in your sidebar.', 'twentyten' ),
        'before_widget' => '<div id="spacer">',
        'after_widget' => '</div></div>',
        'before_title' => '<div id="left_top">',
        'after_title' => '</div><div id="left_bottom">',
    ) );
}

add_action( 'widgets_init', 'twentyten_widgets_init' );

add_filter( 'show_admin_bar', '__return_false' );

remove_action( 'personal_options', '_admin_bar_preferences' );
?>

EDIT **
J’ai supprimé de l’en-tête car cela provoquait des scripts en double dans l’en-tête. Ce n’est donc plus un problème, mais cela n’a pas résolu le problème et rien n’a changé à la suite de sa suppression.

Solution n°1 trouvée

À partir de votre code, tout votre widget ressemblera à :

 <div id="spacer">
 <div id="left_top">Title</div>
 <div id="left_bottom">
 CONTENT
 </div></div>

Vous utilisez des identifiants ici (peut-être avez-vous l’intention d’utiliser des classes) ici pour vos éléments, comme id="left_top". Donc, ajouter plus d’un widget vous posera un problème, voir Plusieurs éléments HTML différents peuvent-ils avoir le même identifiant s’ils sont différents éléments ?, car les identifiants doivent être uniques.

Vous appliquerez peut-être un css / javascript sur l’un de ces identifiants comme
#left_bottom{display:none}cela vous expliquera pourquoi votre contenu ne sera pas affiché indépendamment du widget que vous utilisez.

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 *