[Résolu] Appeler une taxonomy sur une page (Créer un compte)

  • Statut : non résolu
  • Ce sujet contient 7 réponses, 2 participants et a été mis à jour pour la dernière fois par Julie, le il y a 9 années.
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #507410
    Julie
    Participant
    Padawan WordPress
    80 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.3.1
    – Version de PHP/MySQL : 5.1.44
    – Thème utilisé : perso
    – Extensions en place : aucune
    – Nom de l’hebergeur : local
    – Adresse du site : /

    Problème(s) rencontré(s) : Bonjour à tous

    Ma question : Est-il possible d’appeler sur une page la liste des enregistrements d’une taxonomy, si oui, comment?

    Pour être plus claire, j’ai créé un custom post type qui est “Catalogue”, comprenant 3 taxonomy, “auteurs”, “collections” et “genres”.
    J’ai créé la page taxonomy.php et une page template spéciale pour la page Catalogue, qui affiche tous les enregistrements de mon custom post type. Dans cette page j’ai aussi un sous-menu vers les pages “Auteurs”, “Collections” et “Genres”, et je voudrais que chacune de ces pages affiche la liste des taxonomy correspondantes.
    Exemple, dans la page “Auteurs”, on ait la liste
    – Auteur 1
    – Auteur 2
    – Auteur 3

    Merci pour votre aide. Julie

    #823804
    Guy
    Participant
    Maître WordPress
    14821 contributions
    #823805
    Julie
    Participant
    Padawan WordPress
    80 contributions

    Oui je suis justement en train d’étudier cela. Mais je ne sais pas dans quel fichier mettre cet appel : dans le fichier taxonomy-{auteurs}.php ?

    #823807
    Guy
    Participant
    Maître WordPress
    14821 contributions

    Alors là, cela dépend vraiment de la façon dont tu t’organises, le fichier taxonomy-auteur.php sera utilisé par WordPress pour afficher les articles de la taxonomie auteur.
    La fonction get_terms par contre te donnera la liste des auteurs (les terms), ce n’est pas exactement la même chose, mais bien sur, tu peux afficher la liste des auteurs en haut de la page (ou en bas ou sur le coté) qui listera les articles des auteurs, ce n’est pas interdit 🙂 .

    #823806
    Julie
    Participant
    Padawan WordPress
    80 contributions

    Ah oui en effet merci, cela me semble plus logique d’appeler les terms de chaque taxonomy dans le template page qui lui correspond. Cela fonctionne.
    Ne me reste qu’à éplucher la doc de WordPress pour comprendre comment faire que chaque item de cette liste soit un lien qui amène à l’archive correspondante.
    Ah c’est vraiment une manière de réfléchir !
    Merci Guy

    #823808
    Julie
    Participant
    Padawan WordPress
    80 contributions

    Autrement dit, comment mixer cet appel

    $terms = get_terms(“my_taxonomy”);
    $count = count($terms);
    if ( $count > 0 ){
    echo “

      “;
      foreach ( $terms as $term ) {
      echo “

    • ” . $term->name . “
    • “;

      }
      echo “

    “;
    }

    et celui-ci

    $args = array( ‘taxonomy’ => ‘my_term’ );

    $terms = get_terms(‘my_term’, $args);

    $count = count($terms); $i=0;
    if ($count > 0) {
    $term_list = ‘

    ‘;
    foreach ($terms as $term) {
    $i++;
    $term_list .= ‘slug . ‘” title=”‘ . sprintf(__(‘View all post filed under %s’, ‘my_localization_domain’), $term->name) . ‘”>’ . $term->name . ‘‘;
    if ($count != $i) $term_list .= ‘ · ‘; else $term_list .= ‘

    ‘;
    }
    echo $term_list;
    }

    pour obtenir une liste de liens.

    #823809
    Guy
    Participant
    Maître WordPress
    14821 contributions

    Ne t’embete pas trop à chercher, il existe la fonction get_term_link 🙂

    $terms = get_terms(‘species’);
    echo ‘<ul>‘;
    foreach ($terms as $term) {
        echo ‘<li><a>slug, ‘species’).'”>’.$term->name.’</a></li>‘;
    }
    echo ‘</ul>‘;

    #823810
    Julie
    Participant
    Padawan WordPress
    80 contributions

    Houah MERCI GUY ! Fan !👏

8 sujets de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.