IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WordPress PHP Discussion :

Lister des catégories et afficher les articles correspondants


Sujet :

WordPress PHP

  1. #1
    Membre à l'essai
    Inscrit en
    juin 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 28
    Points : 15
    Points
    15
    Par défaut Lister des catégories et afficher les articles correspondants
    Bonjour,

    J'ai besoin pour un projet de lister des catégories, et d'afficher le titre de la catégorie puis le contenu des articles (lié a cette catégorie) a travers une boucle WP sur une même page.
    Ma boucle est prête, mais je bute sur l'affichage de la catégorie comme un titre.. par ex :

    Titre cat1
    - art1
    - art2
    - art3

    Titre cat2
    -art4
    -art5
    -art6

    Nom : Capture d’écran 2023-01-16 174441.png
Affichages : 115
Taille : 41,4 Ko

    Voila ce que je veux obtenir, les catégorie sont les mois, les articles contiennent les dates, titre et lieux.

    Merci d'avance pour vos idées!!!
    Bien cordialement.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    juin 2003
    Messages
    9 789
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 9 789
    Points : 14 879
    Points
    14 879
    Par défaut
    vous utilisez quelle extension pour indiquer la date de chaque évènement ?

  3. #3
    Membre à l'essai
    Inscrit en
    juin 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    je n'utilise pas d'extension, c'est un CPT, les champs à remplir sont fait avec ACF.

    Et ma boucle ressemble à ça pour le moment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    $args= array(
     
     			'post_type' => 'Calendrier',
                'showposts' => 50,
               	'cat' => 24,
                'orderby'  => 'asc'
     
                );
     
    $the_query = new WP_Query($args);
    //var_dump($args);
    while ($the_query->have_posts()) : 
    $the_query->the_post();
    ?>
    	<div>
    	<?php the_field('mois'); ?>
    	<?php the_field('heure'); ?>
     	<?php the_title(); ?>
    	<?php the_field('date'); ?>
    	<?php the_field('lieux'); ?>
    	</div>
    <?php endwhile;?>
    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    mars 2002
    Messages
    39 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2002
    Messages : 39 448
    Points : 66 234
    Points
    66 234
    Billets dans le blog
    1
    Par défaut
    on pourrait imaginer affecte un data-categorie aux éléments
    puis au moyen d'un selecteur sur le data basucler un css display none ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr | www.saftair.fr | www.sistac.fr | www.sebemex.fr | www.extramiante.fr

  5. #5
    Membre à l'essai
    Inscrit en
    juin 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    c'est a dire, je ne vois pas trop ce que vous entendez par data-categorie...

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    mars 2002
    Messages
    39 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2002
    Messages : 39 448
    Points : 66 234
    Points
    66 234
    Billets dans le blog
    1
    Par défaut
    Un exemple vaudra mieux qu'une longue explication ...
    https://jsfiddle.net/4rxs29ta/

    à priori même pas besoin du each ...
    https://jsfiddle.net/4rxs29ta/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr | www.saftair.fr | www.sistac.fr | www.sebemex.fr | www.extramiante.fr

  7. #7
    Membre à l'essai
    Inscrit en
    juin 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    Ok, merci, je crois que je vois l'idée, mais je ne vois pas encore trop comment le mettre en œuvre sur ce projet (je ne suis pas un dev patenté...).
    Je vais faire des essais! Encore merci

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    mars 2002
    Messages
    39 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2002
    Messages : 39 448
    Points : 66 234
    Points
    66 234
    Billets dans le blog
    1
    Par défaut
    Piste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ($the_query->have_posts()) : 
    $the_query->the_post();
    ?>
    	<div data-categorie="<?php echo [la catégorie wordpress du post] ;?>">
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr | www.saftair.fr | www.sistac.fr | www.sebemex.fr | www.extramiante.fr

  9. #9
    Membre à l'essai
    Inscrit en
    juin 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    bonjour,
    j'ai un peu procrastiné sur ce code et je m'y remets...
    je ne vois toujours pas (et pourtant j'ai bien mes lunettes sur le nez, promis!!) comment je peux faire pour faire apparaitre le premier éléments avec un data-catégorie = janvier, par ex, et cacher ensuite les autres éléments qui ont le même data-catégorie et puis ensuite passer sur les éléments qui ont le data-catégorie=decembre et ainsi de suite...
    j'ai bien essayer avec la pseudo class :firts-child en css, mais ça ne marche pas. Dans la boucle l'élément est toujours le premier..

    Vous pouvez voir ce que j'ai fait ici

    Merci d'avance pour vos idées!

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    mars 2002
    Messages
    39 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2002
    Messages : 39 448
    Points : 66 234
    Points
    66 234
    Billets dans le blog
    1
    Par défaut
    Là pour le coup le data-categorie est sur le section parent ...
    Il faudra en tenir compte pour le selecteur
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr | www.saftair.fr | www.sistac.fr | www.sebemex.fr | www.extramiante.fr

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    mars 2002
    Messages
    39 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2002
    Messages : 39 448
    Points : 66 234
    Points
    66 234
    Billets dans le blog
    1
    Par défaut
    https://jsfiddle.net/v8d7Lpfe/

    Attention à la casse des data-categorie ... janvier != Janvier
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr | www.saftair.fr | www.sistac.fr | www.sebemex.fr | www.extramiante.fr

  12. #12
    Membre à l'essai
    Inscrit en
    juin 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    bonjour,
    oui, j'ai modifié pour la section parent.
    Merci pour ton exemple sur jsfiddle!!
    Mais ce que j'ai besoin de faire c'est d'afficher le mois juste une fois, pas sur chaque boucle (comme sur l'image que j'ai mise dans le premier post).
    Encore merci pour ton aide!

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    mars 2002
    Messages
    39 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2002
    Messages : 39 448
    Points : 66 234
    Points
    66 234
    Billets dans le blog
    1
    Par défaut
    Mais ce que j'ai besoin de faire c'est d'afficher le mois juste une fois, pas sur chaque boucle
    C'est une question de conteneur ...
    Là le data catégorie qui sert à filtrer est sur un div dans une section
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <section id="section-calendrier" class="section-cal">
        <div class="test-data" data-categorie="janvier">
    il suffirait de remonter le data catégorie au conteneur parent qui liste les éléments du mois.

    Mais dans le lien donné ici il n'y a pas de conteneur global par mois ... (d'où le script pour boucler sur chaque data-catégorie)

    Si tu as un conteneur unique par mois colle lui le data-catégorie du mois et tu n'auras en effet pas à boucler
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr | www.saftair.fr | www.sistac.fr | www.sebemex.fr | www.extramiante.fr

  14. #14
    Membre à l'essai
    Inscrit en
    juin 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    Comme je suis dans une boucle wp, toute les infos sont dans des "articles", je ne peux pas faire un conteneur pour mettre le mois.
    Bon, je vais réfléchir a faire autrement. Merci d'avoir pris le temps!!

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    mars 2002
    Messages
    39 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2002
    Messages : 39 448
    Points : 66 234
    Points
    66 234
    Billets dans le blog
    1
    Par défaut
    C'est au contraire tout a fait possible
    Deux façons de faire

    * générer le HTML en php en testant la mois pour savoir si tu dois clore le conteneur du mois et an ouvrir un autre et en concaténant le code html intégral, et en faisant un echo après la boucle

    * ou en php en bouclant sur les articles il suffit de créer un array littéral avec en indexe le mois
    puis en bouclant sur l'array pour générer le conteneur mois et y mettre tous les articles ratachés
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr | www.saftair.fr | www.sistac.fr | www.sebemex.fr | www.extramiante.fr

  16. #16
    Membre à l'essai
    Inscrit en
    juin 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    J'ai bricolé une solution...
    J'ai ajouté un champ acf dans chaque articles, juste une cache a cocher. Et je teste si cette case est coché pour afficher ou non les articles. J'ai fait une boucle par mois. Si il n'y a pas d'articles "actif" sur certains mois, je cache en JS le mois (qui n'était pas dans la boucle WP). ça fonctionne comme ça...
    Voila, comme dit plus haut, je ne suis pas un dev patenté, tu aurais sans aucun doute fait une solution plus propre...
    Encore merci pour le temps passé!

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    mars 2002
    Messages
    39 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2002
    Messages : 39 448
    Points : 66 234
    Points
    66 234
    Billets dans le blog
    1
    Par défaut
    Un dev patenté ?

    Je suis surtout un dev pas tenté par WordPress

    Ce n'est pourtant pas grand chose à réaliser ...
    Lors de ta boucle sur les articles, les classifier correctement dans un array avec pour indexe le mois de sorte a pouvoir ensuite générer tes conteneurs par mois ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr | www.saftair.fr | www.sistac.fr | www.sebemex.fr | www.extramiante.fr

  18. #18
    Membre actif
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2007
    Messages : 138
    Points : 211
    Points
    211
    Par défaut A titre de curiosité
    Ton code m'intéresse
    J'ai bricolé une solution...
    .
    Je cherche de mon côté à faire sans code ACF, un projet avec des CPT.
    Merci..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/10/2013, 21h11
  2. [MySQL] afficher les enregistrements correspondants à mon choix de la liste deroulante
    Par kabirou ousseini dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/06/2009, 00h24
  3. Réponses: 4
    Dernier message: 25/04/2008, 19h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo