- WordPress :6.0
- Statut : non résolu
- Ce sujet contient 15 réponses, 4 participants et a été mis à jour pour la dernière fois par ferman, le il y a 2 années et 2 mois.
-
AuteurMessages
-
31 octobre 2022 à 11 h 19 min #2427885
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.
31 octobre 2022 à 12 h 28 min #2427909Salut, 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.
31 octobre 2022 à 18 h 47 min #2427956Merci 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.
31 octobre 2022 à 19 h 21 min #2427959Pour faire cela à partir d’un bouton, il faut faire un script Ajax
3 novembre 2022 à 15 h 18 min #2428571Bjr,
merci pr vos infos mais existe t’il un exemple de script d’appel (donc par ex à partir d’un bouton ?)
3 novembre 2022 à 16 h 13 min #2428580Bonjour,
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() »
- 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> - 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.
3 novembre 2022 à 16 h 40 min #2428585Merci bcp pr vos exemples !!!:-0 je vais essayer prochainement et vous tiendrais au courant ;-))
Pas évident tout ceci pr moi !!!
4 novembre 2022 à 18 h 15 min #2428840Bsoir,
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.
4 novembre 2022 à 19 h 00 min #2428849Bonjour,
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.
4 novembre 2022 à 19 h 42 min #2428855Merci 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,..??)
4 novembre 2022 à 20 h 29 min #2428869mais 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.
4 novembre 2022 à 20 h 33 min #2428870Merci infiniment pr vos explications !!!
Je crois que pr ce soir, je vais m’en arrêter là…:-)) et vous souhaite une bonne soirée.
5 novembre 2022 à 16 h 06 min #2428988Bjr,
Pourtant, lorsque je clique sur le bouton, (donc normalement fonction active), le : [mon_shortcode] ne disparait pas pour autant.
????.
5 novembre 2022 à 18 h 45 min #2429020Bizarre. 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,
- je mets un bloc shortcode et dedans mon shortcode (shortcode4a).
- je mets un bloc html personnalisé et dedans le code html du bouton
- 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.6 novembre 2022 à 13 h 16 min #2429149Bjr,
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.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.