[Résolu] Boucle de requête, résultat inattendu qui affiche tous les articles (Créer un compte)

  • WordPress :6.7
  • Statut : résolu
15 sujets de 1 à 15 (sur un total de 38)
  • Auteur
    Messages
  • #2485733
    PatJ07
    Participant
    Initié WordPress
    21 contributions

    Bonjour à tous,

    Je me forme sur WordPress et j’utilise le thème twenty twenty five.

    Je ne parviens pas à obtenir le résultat que je souhaite avec la page « Toutes les archives ».

    Mon problème est que dans cette page, j’ai des boucles de requêtes qui m’affichent les articles de toutes les catégories, pas seulement les articles de la catégorie sélectionnée.

    J’ai vu dans une vidéo youtube de wordpress (de Grégoire Noyelle, très intéressante merci à lui) que le paramètre « type de requete » Par défaut / Personnalisé influe sur ce comportement. Si je suis sur « Par défaut », ma page ne m’affiche bien que les articles de ma catégorie en court, c’est ok.

    Mais je ne peux pas faire des réglages différents sur les différentes boucles de requête présentes sur la page. Par exemple une première boucle avec deux extraits d’articles et leur image mise en avant, puis avoir en dessous un autre bloc avec plusieurs extraits d’articles sans image.

    Si je passe le paramètre « type de requête » sur Personnalisé, alors j’ai des réglages (nombre de publications, ordre, etc…) mais dans ce cas, la page affiche les articles de toutes les catégories.

    Bref, il y a un truc que je dois louper, mais je ne vois pas où.

    Quelqu’un peut-il m’aiguiller ?

     

     

     

    #2485742
    Flobogo
    Modérateur
    Maître WordPress
    20839 contributions

    Bonjour,

    Vous oubliez probablement de faire un reset entre deux boucles.

    Avant votre boucle, il faut avoir ces 2 lignes :

    	ob_start();	
    wp_reset_postdata();

     

    Et après votre requête, ces 2 lignes-ci :

    wp_reset_query();

    return ob_get_clean();

     

    Et pareil pour la boucle suivante : les 2 lignes avant / les 2 lignes après

    #2485771
    PatJ07
    Participant
    Initié WordPress
    21 contributions

    Bonjour

    Merci pour la réponse.

    Mais je ne fais pas du tout de code, et ce n’est pas trop mon but. J’utilise l’éditeur de wordpress pour la modification de mon modèle, je n’ai pas de compétence en codage.

    Intégrer ce bout de code via l’éditeur est-il possible ? Je vais chercher.

    Je suis sur un site fraîchement installé localement avec wamp, afin de me former à cette version de wordpress avant de mettre en ligne le blog d’une association. Je trouve curieux ce comportement, et curieux aussi qu’il soit nécessaire de faire du code pour changer cela.

    Ce « reset » est-il possible par paramétrage dans l’éditeur de wordpress ?

     

    Merci

    Patrice

    #2485773
    PatJ07
    Participant
    Initié WordPress
    21 contributions

    Re bonjour

    J’ai tenté d’ajouter un bloc « code » devant et derrière ma boucle de requête pour ajouter le code indiqué ci-dessous. Mais cela ne semble pas être la solution, cela affiche le code, mais ça ne l’exécute pas. Même vaine tentative pour le bloc « code court ».

    Bon je m’en doutais un peu mais qui ne tente rien n’a rien.

    Depuis l’éditeur, j’ai aussi créé une nouvelle composition « Archive des catégories » virege, que j’ai créé pour une de mes catégorie. J’ai ajouté une boucle de requête dans cette composition. Mais cela ne fonctionne pas mieux. Bien que cette composition soit pour une catégorie donnée, les boucles de requête affichent les articles de toutes les catégories.

    Est-ce le comportement normal ? Cela me semble surprenant.

    Merci

    Patrice

    #2485774
    Rock4Temps
    Participant
    Maître WordPress
    1215 contributions

    Bonjour,

    J’ai eu l ‘occasion de répondre pour cette problématique dans cet ARTICLE

    #2485776
    PatJ07
    Participant
    Initié WordPress
    21 contributions

    Bonjour,

    Merci Rock4Temps. J’avais vu cet article, et j’ai vu les vidéos indiquées.
    Cela ne réponds pas à mon besoin. Certes, si on garde le modèle « Toutes les archives » inchangé, il n’affiche que les articles d’une catégorie donnée.

    Malheureusement, le réglage « par défaut » se limite à un réglage de quantité d’articles affichés par la boucle (que l’on paramètre dans « réglages>lecture » de wordpress, ou alors j’ai loupé quelques chose ce qui est fort possible).

    Mais si je veux deux boucles de requêtes avec deux réglages différents (par exemple une avec 2 articles qui sont les deux derniers articles, puis une autre avec 4 articles qui sont les 4 articles suivants, avec une présentation différente), je suis obligé de ne pas utiliser le réglage « par défaut » et cela ne fonctionne plus: tous les articles sont affichés.

    Ou alors je loupe quelque chose dans le principe de fonctionnement, ce qui est très possible également.

    Merci

    Patrice

    #2485777
    Rock4Temps
    Participant
    Maître WordPress
    1215 contributions

    Bonjour,

    Cela est possible, avec ce qu’on appelle des variantes de boucle de requête.

    Cette variante a ce qu’on appelle un espace de nom qui permet de la différencier au niveau de la requête, du  bloc boucle de requête natif de WordPress.

    Mais bien entendu cela passe par du code, et cette variante apparaîtra dans l ‘intéresse de bloc de l’éditeur.

     

    #2485779
    PatJ07
    Participant
    Initié WordPress
    21 contributions

    Bonjour

    Ok, je trouve très curieux de devoir passer par du code pour faire cela, qui me semble pourtant assez basique comme besoin. Mais bon…

    Pouvez-vous m’indiquer des infos sur la manière de faire cela ?

    Merci

    Patrice

    #2485785
    ferman
    Modérateur
    Maître WordPress
    7522 contributions

    Bonjour,

    Faire une variation de block n’est pas du tout une chose facile, en particulier pour le block query loop. Pour vous donner une idée regardez ICI. Pour le moment les requêtes avec le block query loop sont très loin de pouvoir rivaliser en termes de flexibilité avec la méthode classique (sans blocks) qui demande du code (toutefois plus simple que pour les blocks) . Considérant les développements rapides du FSE il est certain que des variations du bloc requête deviendront accessibles en tant que plugins. Pour le moment je n’en connais qu’une qui soit raisonnablement utilisée: « Advanced Query Loop »  ( mais vu que le FSE n’est pas ma tasse de thé à ce stade je n’ai pas très bien cherché; il y en a peut être d’autres. En tout cas, celle-ci devrait vous permettre de vous rapprocher de ce que vous voulez faire:

    • Faire plusieurs boucles successives avec un style différent pour chaque boucle
    • afficher une catégorie ou plus dans chaque boucle
    • exclure des catégories
    • à l’intérieur d’une catégorie ne montrer que certains articles

    Bon, je trouve que ce n’est pas très commode d’emploi mais  j’ai quand même réussi à m’en sortir 🙂 . C’est peut-être une solution. A essayer.

    • Cette réponse a été modifiée le il y a 2 mois par ferman.
    • Cette réponse a été modifiée le il y a 2 mois par ferman.
    #2485798
    Rock4Temps
    Participant
    Maître WordPress
    1215 contributions

    Le temps de tester la variation d’une boucle de requête établi au plus simple
    avec du code PHP et  tester OK, voir la démo ICI 
    ou vous avez le bloc boucle de requête natif pour afficher les articles, et la
    variation du bloc boucle de requête en fin de page qui affiche un type de
    publication personnalisée

    Voici la procédure a suivre:

    il faut d’abord créer un thème enfant a mettre dans le dossier wp-content/themes
    pour cela je vous ai crée un dossier Zip a Télécharger ICI
    Une fois de-zippé vous allez obtenir le dossier: twentytwentyfive-child
    a mettre dans le dossier wp-content/themes
    voici le contenu du dossier: twentytwentyfive-child
    – functions.php
    – style.css
    – screenshot.png

    Dans le fichier function.php vous avez le code necessaire
    pour créer une variation du bloc boucle de requête, déclarer
    le thème enfant, plus des bonus qui pourront vous être utile
    comme autoriser le téléchargement d’ un fichier au format SVG
    dans la médiathèque par exemple pour votre Logo.

    Le fichier style.css vous permettra d’ajouter votre code CSS
    par exemple pour personnaliser l’apparence de votre site.

    • A partir du menu Apparence / Themes activer le Thème
    Twenty Twenty Five Child

    • Vous allez pouvoir maintenant a partir de l’inséreuse de bloc
    de l’editeur (Icône +) insérer dans votre page
    la variation du bloc boucle de requête, soous la catégorie Thème et
    intitulé tout simplement:
    Variation Du Bloc Boucle De Requête
    (voir photo ci-jointe)
    il vous restera a personnaliser le modèle ( image en avant, titre, affichage en grille ou liste etc..)
    et a configurer aux paramètres du bloc votre requête.

    Ci dessous pour la communauté le code PHP  pour la variation
    du Bloc Boucle De Requête:

    /*******************************************************************************
    Variation Bloc Boucle De Requête
    *******************************************************************************/
    /*
    Cette variation du bloc boucle de requête, apparaitra dans l'inséreuse de blocs
    sous la catégorie Thème avec le titre: Variation Du Bloc Boucle De Requête
    Cette variation du bloc boucle de requête, peut être inséré dans la même
    page que le bloc boucle de requête natif de l'editeur, mais avec une requête différente
    il vous restera a personnaliser le modèle ( image en avant, titre, affichage en grille ou liste etc..)
    et a configurer aux paramètres du bloc votre requête.
    */
    function rc_query_loop_variations($variations, $block_type)
    {
    if ($block_type->name === 'core/query') {

    $variations[] = [

    'name' => 'rouergue-creation/query-loop-variation',
    'title' => 'Variation Du Bloc Boucle De Requête',
    'description' => 'Cette variation du bloc boucle de requête, peut être inséré dans la même
    page que le bloc boucle de requête natif, mais avec une requête différente',
    'category' => 'theme',
    'icon' => 'admin-post',
    'attributes' => [
    'namespace' => 'rouergue-creation/query-loop-variation',
    ],
    ];

    }

    return $variations;
    }

    add_filter('get_block_type_variations', 'rc_query_loop_variations', 10, 2);

     

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2485800
    PatJ07
    Participant
    Initié WordPress
    21 contributions

    Bonsoir

    Alors tout d’abord un grand merci pour ce coup de main, je n’en espérais pas tant, merci !

    Juste une question avant de me plonger là dedans: j’ai déjà un thème enfant, puis-je l’utiliser et y mettre vos fichiers ou bien le nom de votre thème enfant est-il inclut dans le code ?  (désolé pour cette question qui peut peut-être paraître idiote, je ne maîtrise pas du tout le code de wordpress).

    Merci encore

    Patrice

    #2485801
    Rock4Temps
    Participant
    Maître WordPress
    1215 contributions

    Si vous avez déjà un thème enfant, pour votre problème
    il vous suffit juste de copier/coller le code PHP
    du message précédent dans le fichier functions.php
    de votre thème enfant.

    Vous aurez alors la variation du bloc boucle de requête
    disponible dans l’inséreuse de bloc.

    Bonne continuation pour votre projet.

    #2485812
    Flobogo
    Modérateur
    Maître WordPress
    20839 contributions

    Désolée, je ne repasse que ce soir. Rien dans votre 1er message n’indiquait que vous utilisiez le bloc « boucle de requête » … et j’ai foncé  sur la version code. Je vois que finalement, vous envisagez de vous y mettre 😉

    Ceci dit, soit si vous-même, vous galérez malgré le code fourni par @rock4temps, soit pour d’autres utilisateurs du forum qui liraient cette discussion, je vous indique une méthode beaucoup plus simple à l’aide d’une extension, qui permet l’affichage en grille ou en liste (ou même d’autres présentations) d’articles de différentes catégories selon différents paramètres. J’ai repéré ces trois-là, mais il en existe probablement d’autres :

    Comme ça, vous avez le choix de la méthode 🙂

    #2485821
    PatJ07
    Participant
    Initié WordPress
    21 contributions

    Bonjour

    @ Rock4Temps : Merci encore pour votre aide. J’ai donc installé tous les fichiers dans le nouveau thème enfant. Je trouve bien la nouvelle « variation de boucle de requête » et je l’ai mise en place. Mais elle se comporte comme la boucle de requête standard: Dès que je change le paramètre « type de requête » de « Par défaut » à « Pesonnalisée », alors la boucle affiche tous les articles de toutes les catégories et plus seulement les articles de la catégorie en cours.</span>

    @ Flobogo : désolé du manque de précision concernant le « bloc ». Merci pour les liens vers des extensions, je vais regarder ça.

    Pour le code, je dois dire que je n’ai vraiment pas trop la possibilité de m’y mettre: je m’occupe de deux sites d’associations en tant que bénévole, et même si le codage m’intéresse dans l’absolu, je fais face à un problème : les journée ne font que 24h…

    Merci en tout cas pour votre aide à tous les deux.

    Patrice

    NB: message initialement marqué comme indésirable par le système (peut-être à cause de la balise </span> qui se « promène toute seule ?)

    • Cette réponse a été modifiée le il y a 2 mois par PatJ07.
    • Cette réponse a été modifiée le il y a 2 mois par PatJ07.
    • Cette réponse a été modifiée le il y a 2 mois par Flobogo. Raison: édit modération
    #2485825
    PatJ07
    Participant
    Initié WordPress
    21 contributions

    Bonjour

    « &@%$$ » ma réponse précédente a été perdue, je recommence :

    Rock4Temps: Merci encore pour l’aide. J’ai donc utilisé le nouveau thème enfant avec vos fichiers, et j’ai bien la « variation de boucle de requête » disponible et je l’ai implémentée. Malheureusement, même résultat qu’avec la boucle de requête normale: dès que je passe la paramètre « type de requête » de « Par Défaut » à « Personnalisée », alors la boucle affiche les articles de toutes les catégories et plus seulement les articles de la catégorie en cours.

    Juste pour comprendre : trouvez vous normal ce comportement ? Personnellement, je ne trouve pas.

     

    Flobogo : Désolé pour l’imprécision concernant le « bloc ».  Merci pour les liens vers les extensions, je vais regarder cela.

     

    Patrice

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