masquer la zone du sidebar si il y a aucun widget (Créer un compte)

  • Statut : non résolu
7 sujets de 1 à 7 (sur un total de 7)
  • Auteur
    Messages
  • #489825
    iviedia
    Membre
    Chevalier WordPress
    133 contributions

    Bonjour à tous,

    grâce a ce tuto ici
    J’ai pu widgetisé mon footer

    voici le code

    dans la page function.php

    register_sidebars(3,array(
    ‘before_widget’ =>  »,
    ‘after_widget’ =>  »,
    ‘before_title’ => ‘<h4>‘,
    ‘after_title’ => ‘</h4>‘,
    ));

    le code que j’ai placer dans le footer

    <div id="footer-sidebar" class="secondary">
    <div id="footer-sidebar1">
    <?php if ( !function_exists('dynamic_sidebar')
    || !dynamic_sidebar(3) ) : ?>
    <?php endif; ?>
    </div>
    <div id="footer-sidebar2">
    <?php if ( !function_exists('dynamic_sidebar')
    || !dynamic_sidebar(4) ) : ?>
    <?php endif; ?>
    </div>
    <div id="footer-sidebar3">
    <?php if ( !function_exists('dynamic_sidebar')
    || !dynamic_sidebar(5) ) : ?>
    <?php endif; ?>

    et l’info que j’ai placé dans le fichier css

    #footer-sidebar {
    /*border: 1px solid #ff0000;*/
    display:block;
    height: 260px;
    margin-bottom:15px;
    }
    #footer-sidebar1 {
    float: left;
    width: 315px;
    height: 260px;

    margin-right:15px;
    background-color:#999999;
    }
    #footer-sidebar2 {
    float: left;
    width: 315px;
    height: 260px;

    margin-right:15px;
    background-color:#424242;
    }
    #footer-sidebar3 {
    float: left;
    width: 315px;
    height: 260px;

    background-color:#999999;
    }

    tout marche super bien 🙂

    Ce que j’aimerai faire c’est quand j’ai aucun widget au footer, j’aimerai que la zone du footer sidebar disparais et qu’il montre aucun bloc (sidebar/widget )

    Si widget alors qu’il affiche les blocs
    Si aucun widget alors il affiche pas le div footer-sidebar et ses sous div ….

    voila, j’espère que vous pouvez me donner une petit piste pour résoudre mon soucis
    je vous souhaite un bon dimanche à tous

    merci

    IVIedia

    #751701
    ydubois
    Membre
    Chevalier WordPress
    180 contributions

    Dans la mesure où tu as réglé « en dur » le style fixe de tes sidebars (largeur, hauteur,…) il n’y a pas de moyen de compter sur CSS pour que ces zones n’apparaissent pas quand il n’y a pas de contenu. C’est un peu dommage car du coup il n’y a pas d’autre solution que d’utiliser une solution dynamique plus lourde.

    Deux approches possibles :

    1) Utiliser le Javascript pour manipuler la DOM et faire disparaître les zones quand elles sont vides. Tu peux utiliser jQuery pour le faire après chargement de la page.

    2) Utiliser PHP en amont pour ne pas charger les dynamic_sidebars s’il n’y a rien dedans, ce qui peut se faire en consultant la clé d’option WP sidebars_widgets (avec get_option() ); celle-ci contient un tableau des widgets activés pour chaque sidebar (voir exemple ci-dessous).

    Selon que tu te sens plus à l’aise avec jQuery ou avec PHP, le choix t’appartient, chaque méthode ayant ses avantages et inconvénients en terme de charge du serveur ou du client.

    Exemple de format du tableau sidebars_widgets :

    array(8) {
    [« wp_inactive_widgets »]=>
    array(0) {
    }
    [« primary-widget-area »]=>
    array(7) {
    [0]=>
    string(17) « language-selector »
    [1]=>
    string(8) « search-2 »
    [2]=>
    string(14) « recent-posts-2 »
    [3]=>
    string(17) « recent-comments-2 »
    [4]=>
    string(10) « archives-2 »
    [5]=>
    string(12) « categories-2 »
    [6]=>
    string(6) « meta-2 »
    }
    [« secondary-widget-area »]=>
    array(0) {
    }
    [« first-footer-widget-area »]=>
    array(0) {
    }
    [« second-footer-widget-area »]=>
    array(0) {
    }
    [« third-footer-widget-area »]=>
    array(0) {
    }
    [« fourth-footer-widget-area »]=>
    array(0) {
    }
    [« array_version »]=>
    int(3)
    }

    #752649
    ydubois
    Membre
    Chevalier WordPress
    180 contributions

    Dans la mesure où tu as réglé « en dur » le style fixe de tes sidebars (largeur, hauteur,…) il n’y a pas de moyen de compter sur CSS pour que ces zones n’apparaissent pas quand il n’y a pas de contenu. C’est un peu dommage car du coup il n’y a pas d’autre solution que d’utiliser une solution dynamique plus lourde.

    Deux approches possibles :

    1) Utiliser le Javascript pour manipuler la DOM et faire disparaître les zones quand elles sont vides. Tu peux utiliser jQuery pour le faire après chargement de la page.

    2) Utiliser PHP en amont pour ne pas charger les dynamic_sidebars s’il n’y a rien dedans, ce qui peut se faire en consultant la clé d’option WP sidebars_widgets (avec get_option() ); celle-ci contient un tableau des widgets activés pour chaque sidebar (voir exemple ci-dessous).

    Selon que tu te sens plus à l’aise avec jQuery ou avec PHP, le choix t’appartient, chaque méthode ayant ses avantages et inconvénients en terme de charge du serveur ou du client.

    Exemple de format du tableau sidebars_widgets :

    array(8) {
    [« wp_inactive_widgets »]=>
    array(0) {
    }
    [« primary-widget-area »]=>
    array(7) {
    [0]=>
    string(17) « language-selector »
    [1]=>
    string(8) « search-2 »
    [2]=>
    string(14) « recent-posts-2 »
    [3]=>
    string(17) « recent-comments-2 »
    [4]=>
    string(10) « archives-2 »
    [5]=>
    string(12) « categories-2 »
    [6]=>
    string(6) « meta-2 »
    }
    [« secondary-widget-area »]=>
    array(0) {
    }
    [« first-footer-widget-area »]=>
    array(0) {
    }
    [« second-footer-widget-area »]=>
    array(0) {
    }
    [« third-footer-widget-area »]=>
    array(0) {
    }
    [« fourth-footer-widget-area »]=>
    array(0) {
    }
    [« array_version »]=>
    int(3)
    }

    #751702
    iviedia
    Membre
    Chevalier WordPress
    133 contributions

    Merci pour votre réponse 🙂

    Je vais essayé avec votre piste en php …
    merci

    #752650
    iviedia
    Membre
    Chevalier WordPress
    133 contributions

    Merci pour votre réponse 🙂

    Je vais essayé avec votre piste en php …
    merci

    #751703
    iviedia
    Membre
    Chevalier WordPress
    133 contributions

    re 🙂

    a tout hasard, ça existe pas un plugins qui gère les sidebar ?
    merci

    😉

    #752651
    iviedia
    Membre
    Chevalier WordPress
    133 contributions

    re 🙂

    a tout hasard, ça existe pas un plugins qui gère les sidebar ?
    merci

    😉

7 sujets de 1 à 7 (sur un total de 7)
  • Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.