[Résolu] Une page archive à double liste filtrée

  • Statut : non résolu
3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #497306
    johnfrancisco
    Membre
    Initié WordPress
    24 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.2
    – Version de PHP/MySQL : 5
    – Thème utilisé : Hemingway (revu de fond en comble)
    – Extensions en place : un paquet
    – Nom de l’hebergeur : local pour l’instant
    – Adresse du site :

    Problème(s) rencontré(s) :

    Bonjour,
    j’ai donc un wordpress réglé pour montrer des projets (en custom post type) et des articles courrants de blog.
    J’utilise les tags sur les deux objets, et je souhaiterai que sur ma page archive les projets et articles de blog soient listés séparément.

    J’ai pour l’instant dupliqué ma boucle et filtré chacune par catégorie pour obtenir 2 listes dédiées mais cette solution a l’inconvénient de produire des listes vides pour certaines requêtes. Si un article de blog ou un projet n’a pas le tag de la requete par exemple, cela produit une liste vide, car le filtre est dans la boucle au lieu d’être avant la boucle :

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
     <!-- Si l'Article est dans la Catégorie que nous souhaitons exclure, nous passons à l'Article suivant. -->
     <?php if (in_category('3')) continue; ?>

    Quelqu’un a une idée?

    Par avance, merci.

    #781120
    johnfrancisco
    Membre
    Initié WordPress
    24 contributions

    yo

    Bon bah j’ai trouvé, et ça marche super.
    Sur la page de la fonction query_posts, j’ai trouvé mon bonheur :
    j’ai ajouté ça

    global $query_string;
    parse_str( $query_string, $args );
    $args[‘post_type’] = array( ‘projets’ );
    query_posts( $args );

    ou bien on peut aussi faire ça

    global $wp_query;
    $args = array_merge( $wp_query->query, array( ‘post_type’ => ‘projets’ ) );
    query_posts( $args );

    devant le

    if (have_posts()) :

    de mes deux boucles (enfin de la première, pour l’autre j’ai remplacé “projets” par “post” tout simplement).

    Comme ça c’est filtré depuis le départ, et s’il n’y a rien pour un tag, ça n’affiche rien (ou alors un message de mon choix), c’est super. Merci WordPress.

    à noter à la fin de mes deux boucles, j’ai bien sûr ajouté le Reset Query.

    // Reset Query
    wp_reset_query();

    si ça peut servir…

    #781121
    Qwindoo
    Modérateur
    Maître WordPress
    2866 contributions

    Le plus propre dans ces cas-là est de créer un nouvel objet WP_Query et de travailler avec, ça permet aussi de se passer des [c]wp_reset_query[/c] qui font toujours un peu bidouillage 😉

    njaka41 : j’ai supprimé tes messages inutiles, notamment ceux postés dans le forum Présentation, et je t’avertis une première et dernière fois contre la course au nombre de posts, très mal vue par l’équipe modératrice.

    Je marque la discussion comme résolue.

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