[Résolu] Cacher un champs vide (Créer un compte)

  • WordPress :5.2
  • Statut : résolu
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #2287399
    Kiiritolink
    Participant
    Initié WordPress
    15 contributions

    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.

    #2287402
    mathieu42
    Participant
    Maître WordPress
    2013 contributions

    si 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)) {...

    #2287407
    Li-An
    Participant
    Maître WordPress
    28497 contributions
    #2287436
    Kiiritolink
    Participant
    Initié WordPress
    15 contributions

    Ce 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.

    #2287483
    Li-An
    Participant
    Maître WordPress
    28497 contributions

    Ce 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.

    #2287509
    Kiiritolink
    Participant
    Initié WordPress
    15 contributions

    une 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.

    #2287523
    Li-An
    Participant
    Maître WordPress
    28497 contributions

    Le 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; ?>

     

    #2287817
    Kiiritolink
    Participant
    Initié WordPress
    15 contributions

    Ré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 6 mois par Kiiritolink.
8 sujets de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.