Trier mes articles sur des champs personnalisés ? (Créer un compte)

  • WordPress :6.0
  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 16)
  • Auteur
    Messages
  • #2427885
    PatX
    Participant
    Padawan WordPress
    90 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL :
    • Thème utilisé :  Hueman
    • Extensions en place :
    • Nom de l’hébergeur :
    • Adresse du site :  local

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

    Bonjour,

    (Thème Hueman)

    J’ai créé ma page d’articles (ils sont toujours triés par défaut par date de publication) mais j’aimerais trier mes articles sur les nouveaux champs personnalisés que j’ai créés avec le plugin Advanced Custom Fields. (Je peux voir ces champs dans mon tableau de bord d’administration (articles) (les nouveaux champs ont bien été rajoutés et remplis).

    Pour créer le script, j’ai cherché sur le Net!!! et je me suis inspiré d’exemples et j’ai créé le script suivant, Je l’ai inséré dans ma page avec le widget shortcode mais ensuite comment l’activer??? ou devrais-je utiliser un autre widget ? Déjà, mon script est-il correct ? , ou certaines instructions manquent-elles? (parce que je n’ai commencé qu’il y a quelques mois…;-)) )

    et si possible,je voudrais l’activer sur ma page à partir par exemple d’un bouton radio ou quelque chose du même type, est-ce possible? Merci beaucoup pour vos conseils!

    
    

    $query_args = array( ‘post_type’ => ‘post’,
    ‘category_name’ => ‘course’,
    ‘order’ => ‘DESC’,
    ‘orderby’ => ‘meta_value_num’,
    ‘meta_key’ => ‘ number_runners’,
    ‘posts_per_page’ => 5
    ); $query = new WP_Query( $query_args );

    • Ce sujet a été modifié le il y a 2 années et 2 mois par PatX.
    #2427909
    momofr@free.fr
    Modérateur
    Maître WordPress
    7460 contributions

    Salut, tu as oublié de nous donner les informations sur ton hébergement et les extensions utilisées. Impossible de te répondre sans ça.

    Sinon pour ce sujet je t’invite à lire (en anglais) cet article dans la documentation d’ACF.

    #2427956
    PatX
    Participant
    Padawan WordPress
    90 contributions

    Merci pr tes infos !!

    J’ai parcouru le lien que tu m’as indiqué (ACF) mais je ne vois pas comment lancer mon script à partir de ma page , dois-je utiliser une autre extension ou est-ce à partir d’un widget déjà installé sur WP que je peux insérer mon code ??, en fait je voudrais activer mon code si possible à partir d’un bouton par exemple.

    Rem: -/ J »utilise bien d’autres extension (ex pr gérer les évènements ou calendrier ou autres…) mais qui me semblent H.S par rapport à mon pb 

    -/ mon site est en local.

    #2427959
    Lumiere de Lune
    Participant
    Maître WordPress
    20531 contributions

    Pour faire cela à partir d’un bouton, il faut faire un script Ajax

    #2428571
    PatX
    Participant
    Padawan WordPress
    90 contributions

    Bjr,

    merci pr vos infos mais existe t’il un exemple de script d’appel (donc par ex à partir d’un bouton ?)

    #2428580
    ferman
    Modérateur
    Maître WordPress
    7366 contributions

    Bonjour,

    Je ne sais pas si ça répondra à votre question mais vous pouvez utiliser un formulaire avec un « input » et la méthode « get » ou « post » et « isset() »

    1. Dans une page vous mettez un  bouton et un shortcode par ex:
      <form id="ma_form" method="post" name="ma_form">
      <input id="mon_bouton" name="mon_bouton" type="submit" value="mon_bouton">
      </form>

    2. Dans functions.php vous mettez:
    function ma_fonction(){	
    if(isset($_POST["mon_bouton"])){

    // VOTRE FONCTION

    }
    add_shortcode('mon_shortcode', 'ma_fonction');

    Les résultats seront affichés sur la même page que le bouton.

    Par rapport à Ajax, c’est plus lourd mais normalement ça fonctionne bien.

    • Cette réponse a été modifiée le il y a 2 années et 2 mois par ferman.
    • Cette réponse a été modifiée le il y a 2 années et 2 mois par ferman.
    #2428585
    PatX
    Participant
    Padawan WordPress
    90 contributions

    Merci bcp pr vos exemples !!!:-0  je vais essayer  prochainement et vous tiendrais au courant ;-))

    Pas évident tout ceci pr moi !!!

    #2428840
    PatX
    Participant
    Padawan WordPress
    90 contributions

    Bsoir,

    J’ai bien l’affichage du bouton et j’ai rajouté le script ds le fichier functions.php mais lorsque je clique sur le bouton, mes articles restent tjrs triés par la date et non par le champ personnalisé….peut-être que déjà le pb vient de mon script …?? avec les noms de colonnes prises ds la table wp_postmeta 

    REm: dois-je rajouter ausi le shortcode sur la page ?? car en cherchant sur le net , ils disent de rajouter le nom du shortcode entre []

    (j’ai juste  inséré le script html ds la page pour avoir l’affichage du bouton) mais ds  le cas où il faut rajouter le shortcode, je ne vois pas bien où l’insérer en + du bouton ???  ou y a un truc qui m’échappe..??

    et en parcourant la wp_postmeta, je remarque que pour chaque champ personnalisé il existe 2 lignes…??

    1/ avec pr la 1ère ligne , le nom du champ (ds la col meta_key) mais pour la colonne meta_value  (celle-ci est vide)

    2/ et pr la seconde ligne , le nom du champ est précédé d’un _ tandis que la col meta_value est renseigné mais avec  ‘field_62ff91c35effe’  ??

    alors que ds mon  tableau de bord/articles: tous les champs personnalisés sont bien renseignés avec des valeurs numériques.

    Si qq’un a déjà eu l’occasion de parcourir cette fameurse table..??  ;-((  son aide serait précieuse…

    Merci.

     

    • Cette réponse a été modifiée le il y a 2 années et 2 mois par PatX.
    #2428849
    ferman
    Modérateur
    Maître WordPress
    7366 contributions

    Bonjour,

    Le shortcode n’a rien à voir avec le bouton mais avec la fonction. C’est lui qui va déterminer l’endroit où la fonction va afficher les résultats.

    Et oui, bien sûr, dans la page, le shortcode est entre crochets [mon_shortcode]. Si vous utilisez Gutenberg, le plus simple est d’utiliser un bloc shortcode.

    Si vous utilisez l’éditeur classique, vous mettez le shortcode où vous voulez.

    Pour category_name vous avez bien utilisé le « slug » et pas le nom? Voir le paragraphe « category parameters » ICI.

    Pour votre script, je ne peux rien dire.

    Pour les deux entrées dans la base de données, ça semble normal avec ACF (voir ICI) mais comme je n’utilise pas ACF je ne peux pas en dire plus.

     

     

     

    #2428855
    PatX
    Participant
    Padawan WordPress
    90 contributions

    Merci encore pr votre aide!!!

    1/Mais décidément, je coince tjrs sur le même truc , j’ai bien rajouté sur ma page le nom du shortcode entre crochet  (avec le bloc shortcode)

    mais en consultation de ma page j’ai bien tjrs le bouton…mais  juste en dessous j’ai :[mon_shortcode]  ça ne devrait pas apparaitre en consultation  ????  et en fait, je n’arrive pas à comprendre comment à partir du bouton il sait appeler le shortcode ??? comment se fait le lien ?

    2/ J’ai bien le slug pr la category_name mais je vais appronfondir le pb pr rapport à la la table wp_postmeta (noms des col, certaines non renseignées,..??)

    #2428869
    ferman
    Modérateur
    Maître WordPress
    7366 contributions

    mais en consultation de ma page j’ai bien tjrs le bouton…mais juste en dessous j’ai :[mon_shortcode] ça ne devrait pas apparaitre en consultation ????

    C’est normal; si aucune fonction utilisant le shortcode n’est active, le shortcode est visible. Dès qu’une fonction lui est attachée il disparaît. Si on veut vraiment éviter ça on peut utiliser les « filtres » ou « actions » à la place des « shortcodes ». Il y en a quelques uns génériques dans wordpress  (wp_head, wp_footer) et d’autres spécifiques de votre thème; c’est variable selon les thèmes.

    et en fait, je n’arrive pas à comprendre comment à partir du bouton il sait appeler le shortcode ??? comment se fait le lien ?

    Le bouton n’appelle pas le shortcode mais la fonction et la fonction s’applique là où est le shortcode . Vous pouvez essayer avec la simple fonction return (ou echo)  ‘TOTO’, avec et sans shortcode. Vous verrez la différence.

    #2428870
    PatX
    Participant
    Padawan WordPress
    90 contributions

    Merci infiniment pr vos explications !!!

    Je crois que pr ce soir, je vais m’en arrêter là…:-))  et vous souhaite une bonne soirée.

    #2428988
    PatX
    Participant
    Padawan WordPress
    90 contributions

    Bjr,

    Pourtant, lorsque je clique sur le bouton, (donc normalement fonction active), le : [mon_shortcode] ne  disparait pas pour autant.

    ????.

    #2429020
    ferman
    Modérateur
    Maître WordPress
    7366 contributions

    Bizarre. Il doit y avoir une erreur quelque part (dans votre script?). Je viens de tester avec une fonction wp_query sans problème.

    Donc dans ma page,

    1. je mets un bloc  shortcode et dedans mon shortcode (shortcode4a).
    2. je mets un bloc html personnalisé et dedans le code html du bouton
    3. dans functions.php je mets:
      function ma_fonction(){	

      if(isset($_POST["mon_bouton"])){

      $args = array (
      'orderby' => 'post_author' ,
      'order' => 'asc',
      'posts_per_page'=> -1);
      $query = new WP_Query($args);

      ?> <ul><?php

      while($query->have_posts()) : $query->the_post();

      ?><li><a href="<?php the_permalink(); ?>"><?php the_title();?></a>     <?php the_date()?>     <?php the_author_meta( 'id' );?></li><?php

      endwhile;
      ?></ul><?php
      wp_reset_postdata(); // reset the query
      }
      }
      add_shortcode('shortcode4a', 'ma_fonction');

      Et j’obtiens ce qui est en pièce jointe (deux auteurs, deux ids). Le shortcode4a a disparu, on voit un shortcode4b car il n’est utilisé pour aucune fonction.

     

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2429149
    PatX
    Participant
    Padawan WordPress
    90 contributions

    Bjr,

    Enfin…ça fonctionne !!  je n’ai plus le [mon_shortcode] qui apparait, j’avais en fait une accolade mal placée dans le script…:-((

    par contre maintenant il m’a signalé plein d’erreurs concernant mon script….j’ai encore du boulot..:-))

    Merci encore.

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