[Résolu] Créer une fonction d’affichage des Custom Taxo sous forme de liste (Créer un compte)

  • Statut : non résolu
14 sujets de 1 à 14 (sur un total de 14)
  • Auteur
    Messages
  • #507228
    Interned
    Membre
    Chevalier WordPress
    229 contributions

    Bonjour,

    J’ai (enfin ! 😐) réussi à afficher mes custom taxo en liste. Simplement, c’est répétitif dans mon index.php… Comment pourrait-on rendre ce code plus digeste ? On doit pouvoir faire passer tout ça dans une fonction dans le fichier functions.php, je pense, non ? Et ensuite appeler ladite fonction là où on le souhaite ?

    <?php 
    $taxonomy = 'rubriques';
    $orderby = 'name';
    $show_count = 0;
    $pad_counts = 0;
    $hierarchical = 1;
    $title = __( 'Rubriques' );

    $args = array(
    'taxonomy' => $taxonomy,
    ‘orderby’ => $orderby,
    ‘show_count’ => $show_count,
    ‘pad_counts’ => $pad_counts,
    ‘hierarchical’ => $hierarchical,
    ‘title_li’ => $title
    );
    ?>
    <ul>
    <?php wp_list_categories( $args ); ?>
    </ul>

    <?php
    $taxonomy = 'livraisons';
    $orderby = 'name';
    $show_count = 0;
    $pad_counts = 0;
    $hierarchical = 1;
    $title = __( 'Livraisons' );

    $args = array(
    'taxonomy' => $taxonomy,
    ‘orderby’ => $orderby,
    ‘show_count’ => $show_count,
    ‘pad_counts’ => $pad_counts,
    ‘hierarchical’ => $hierarchical,
    ‘title_li’ => $title
    );
    ?>
    <ul>
    <?php wp_list_categories( $args ); ?>
    </ul>

    <?php
    $taxonomy = 'thematiques';
    $orderby = 'name';
    $show_count = 0;
    $pad_counts = 0;
    $hierarchical = 1;
    $title = __( 'Thématiques' );

    $args = array(
    'taxonomy' => $taxonomy,
    ‘orderby’ => $orderby,
    ‘show_count’ => $show_count,
    ‘pad_counts’ => $pad_counts,
    ‘hierarchical’ => $hierarchical,
    ‘title_li’ => $title
    );
    ?>

    #823172
    seebz
    Participant
    Padawan WordPress
    80 contributions

    p’têtre :

     __( ‘Rubriques’ ),
    ‘livraisons’ => __( ‘Livraisons’ ),
    ‘thematiques’ => __( ‘Thématiques’ ),
    );
    foreach($taxos as $taxonomy => $title) {
    echo ‘<ul>‘;
    wp_list_categories(array(
    ‘taxonomy’ => $taxonomy,
    ‘orderby’ => ‘name’,
    ‘show_count’ => 0,
    ‘pad_counts’ => 0,
    ‘hierarchical’ => 1,
    ‘title_li’ => $title
    ));
    echo ‘</ul>‘;
    }
    ?>

    #823173
    Interned
    Membre
    Chevalier WordPress
    229 contributions

    Beh, bravo et merci, Seebz 🙂.

    #823174
    Interned
    Membre
    Chevalier WordPress
    229 contributions

    Je souhaiterais insérer mes listes dans les balises et . Mais rien ne s’affiche si je remplace

      par . Comment puis-je faire ?
    #823175
    Guy
    Participant
    Maître WordPress
    14817 contributions
    #823176
    Interned
    Membre
    Chevalier WordPress
    229 contributions

    Je viens de voir aussi ce lien : . Merci Guy.

    #823177
    Interned
    Membre
    Chevalier WordPress
    229 contributions

    La fonction wp_dropdown_categories est effectivement adaptée.

    Par contre, la recherche n’aboutit qu’à des pages 404, avec comme fin d’URL ../?cat=29, alors que je m’attends à ../nomdemataxonomie. Ou du moins à un résultat effectif.

    Que faut-il modifier pour que WP trouve la bonne page ?

    oups, le code (mais c’est pas ce qui va changer beaucoup de choses, je pense) :

    <li id="categories">
    <h4></h4>
    <form action=" » method= »get »>
    <div>
    <?php
    $select = wp_dropdown_categories('show_option_none=Choisir un numero&show_count=1&orderby=name&echo=0&taxonomy=livraisons&order=DESC');
    $select = preg_replace("#]*)># », «  », $select);
    echo $select;
    ?>
    <div></div>
    </div>
    </form>
    </li>

    #823178
    Guy
    Participant
    Maître WordPress
    14817 contributions

    Ah oui, en effet, je n’avais jamais remarqué cela, cette fonction n’est pas utilisable avec les custom taxonomies, enfin je n’y suis pas arrivé, il faudrait réécrire le walker.

    Donc, suggestion de se servir de wp_dropdown_categories à oublier :(

    #823179
    Interned
    Membre
    Chevalier WordPress
    229 contributions

    J’ai tenté un autre code mais ça m’amène aussi à des URL de type http://wwww.monsite.com/0 … et me ramène sur la page d’accueil, comme si cela faisait une ancre.

    J’ai lu qu’il fallait peut-être utiliser get_the_term qui cible les Custom Taxo mais en vain pour le moment.

    Comment faire alors ? Doit bien y avoir un moyen, non ?

    Je vais voir avec le lien que j’avais trouvé, dans ce cas.

    #823180
    Guy
    Participant
    Maître WordPress
    14817 contributions

    trouvé ici : http://webdesign.anmari.com/2264/wp_dropdown_categories-with-taxonomies/

    Cet exemple fonctionne dans tous les cas de permaliens.

    il faudra juste modifier

    $select = wp_dropdown_categories(‘show_option_none=Choisir un numero&show_count=1&orderby=name&echo=0&taxonomy=livraisons&order=DESC’);

    en (ne pas oublier d’ajouter &name=livraisons)

    $select = amr_dropdown_taxonomy_terms(‘show_option_none=Choisir un numero&show_count=1&orderby=name&echo=0&taxonomy=livraisons&order=DESC&name=livraisons’);

    #823181
    Interned
    Membre
    Chevalier WordPress
    229 contributions

    Génial !!! Cela fonctionne à merveille. 👏

    J’avais aussi remarqué cet article mais comme tu m’avais parlé de la fonction wp_dropdown_categories, hier tout l’après-midi, j’ai tenté par monts et par vaux de rendre le code valide. :D

    Cette fonction mériterait sans doute d’être épinglée sur le forum en attendant que le bug soit réparé, non ?

    #823182
    Interned
    Membre
    Chevalier WordPress
    229 contributions

    Ah, euh, juste une demande de précision : si on veut le faire pour plusieurs CT, y aurait-il possibilité d’éviter la répétition du code, afin de ne pas avoir ça dans notre fichier ?

    <h4></h4>
    <form action=" » method= »get »>
    <div>
    <?php
    $select = amr_dropdown_taxonomy_terms('show_option_none=Choisir un numero&show_count=1&orderby=name&echo=0&taxonomy=livraisons&order=DESC&name=livraisons');
    $select = preg_replace("#]*)># », «  », $select);
    echo $select;
    ?>
    <div></div>
    </div>
    </form>
    <h4></h4>
    <form action=" » method= »get »>
    <div>
    <?php
    $select = amr_dropdown_taxonomy_terms('show_option_none=Choisir un numero&show_count=1&orderby=name&echo=0&taxonomy=rubriques&name=rubriques');
    $select = preg_replace("#]*)># », «  », $select);
    echo $select;
    ?>
    <div></div>
    </div>
    </form>

    #823183
    Guy
    Participant
    Maître WordPress
    14817 contributions

    pareil que précedement, avec un tableau et un foreach

     ‘Les Rubriques’,
    ‘livraisons’ => ‘Les Livraisons’,
    ‘thematiques’ => ‘Les Thématiques’,
    );
    foreach($taxos as $taxonomy => $title) {
    ?>
    <h4></h4>
    <form action=" » method= »get »>
    <div>
    <?php
    $select = amr_dropdown_taxonomy_terms("show_option_none=Choisir un numero&show_count=1&orderby=name&echo=0&taxonomy=$taxonomy&order=DESC&name=$taxonomy");
    $select = preg_replace("#]*)># », «  », $select);
    echo $select;
    ?>
    <div></div>
    </div>
    </form>

    #823184
    Interned
    Membre
    Chevalier WordPress
    229 contributions

    Merci encore, Guy ! ✅

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