- WordPress :5.2
- Statut : résolu
- Ce sujet contient 7 réponses, 3 participants et a été mis à jour pour la dernière fois par Kiiritolink, le il y a 4 années et 10 mois.
-
AuteurMessages
-
30 novembre 2019 à 20 h 42 min #2287399
Bonjour,
Ma configuration WP actuelle
- Version de PHP/MySQL : 7.3.12
- Thème utilisé : Twenty seventeen
- Extensions en place : ACF – Woocommerce
- Nom de l’hébergeur : 1&1
- Adresse du site : http://www.jrpg.fr
Problème(s) rencontré(s) :
Mon problème, je n’arrive pas à cacher un champs créé avec ACF quand celui-ci est vide. Mon code actuel est
<?php echo "<strong>Appartient à la saga:</strong>";?>
<?php $appartient_a_la_saga_terms = get_field( 'appartient_a_la_saga' ); ?>
<?php if ( $appartient_a_la_saga_terms ): ?>
<?php foreach ( $appartient_a_la_saga_terms as $appartient_a_la_saga_term ): ?>
<?php echo $appartient_a_la_saga_term->name; ?>
<?php endforeach; ?>
<?php endif; //** affiche la série de jeu ?>Comme il est actuellement il est fait pour être visible même vide. Cependant, j’ai regarder plusieurs site pour modifier ce code est faire en sorte qu’il soit caché s’il est vide. Je n’arrive pas à trouver ce qui cloche :/ malgré les codes et exemples que j’ai pu trouvé sur la toile.
30 novembre 2019 à 22 h 36 min #2287402si vous voulez tester le tableau $appartient_a_la_saga_terms pour savoir s’il contient des éléments, vous pouvez faire
if (0 !== count($appartient_a_la_saga_terms)) {...
30 novembre 2019 à 23 h 34 min #22874071 décembre 2019 à 8 h 53 min #2287436Ce code ne fonctionne pas, il génère une erreur:
<?php if (0 !== count( $appartient_a_la_saga_terms )): ?>
j’ai également lu le lien, cela a été mon premier essai, mais il ne s’intègre pas à mon code actuel. Il ne génère pas d’erreur, mais il ne cache pas le champs vide. Je pense que je le gère mal, parce que le code isolé, ça fonctionne.
1 décembre 2019 à 16 h 00 min #2287483Ce n’est pas super clair votre truc: il faudrait nous préciser comment vous gérez ce champ et pourquoi vous faites un foreach dessus.
1 décembre 2019 à 20 h 16 min #2287509une partie du code a été généré par un plugin, dont le foreach. J’utilise ACF pour me faciliter la vie, je démarre un apprentissage autodidacte du php. Foreach va chercher les « étiquettes » déjà existantes.
Je fabrique des fiches de jeux, sur ces fiches je mets un champs avec ACF pour signaler si le jeu fait partie d’une saga (genre Zelda). Certains jeux ne font pas parti d’une série, mon problème est que ce champs reste vide dans ce cas. Je voudrai le cacher si le champs est vide. Cependant, ACF ne me permet pas de le faire (ou alors je ne suis pas au courant).
Le code que j’ai donné est celui généré par le plugin et personnalisé par mes soins. Je ne sais pas si c’est plus clair maintenant. J’ai donc parcouru le net pour voir des exemples, mais cela ne s’adapte pas avec le code que j’ai actuellement.
1 décembre 2019 à 23 h 10 min #2287523Le code que je donne fonctionne, vous l’avez constaté. Reste à nous montrer comment vous l’avez inséré dans le code.
<?php if( get_field('field_name') ): ?>
<?php echo "<strong>Appartient à la saga:</strong>";?>
<?php $appartient_a_la_saga_terms = get_field( 'appartient_a_la_saga' ); ?>
<?php if ( $appartient_a_la_saga_terms ): ?>
<?php foreach ( $appartient_a_la_saga_terms as $appartient_a_la_saga_term ): ?>
<?php echo $appartient_a_la_saga_term->name; ?>
<?php endforeach; ?>
<?php endif; //** affiche la série de jeu ?>
<?php endif; ?>3 décembre 2019 à 20 h 00 min #2287817Réponse un peu tardive de ma part, mais effectivement c’était le positionnement de mon code qui n’était pas bon. A force de me charger de travail je n’ai pas eu la lucidité de le remarquer. Et je n’avais pas répété endif à la fin.. Erreur de débutant, j’ai encore tellement de choses à apprendre.
Cela fonctionne parfaitement. En fait je positionnais le get_field après ma première ligne echo…
Merci pour votre aide 🙂
- Cette réponse a été modifiée le il y a 4 années et 10 mois par Kiiritolink.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.