web-dev-qa-db-fra.com

PHP Mise en écho de la mise en forme dans les champs personnalisés avancés

En utilisant Advanced Custom Fields dans Wordpress, j'ai le code suivant:

if(the_sub_field('company_name')) { 

   echo '<strong>Company name:</strong>'; 
   echo '<p>' . the_sub_field('company_name') . '</p>';
}

Lorsque la page s'affiche, le nom de la société est rendu (the_sub_field), mais pas le nom de la société : .

Cela s'est également produit à un certain nombre d'autres endroits dans mon code lorsque j'échante du code HTML.

Y a-t-il une raison à cela? Est-ce que cela a à voir avec ACF? Merci beaucoup

EDIT: Même si j'essaie de cette façon, le nom de l'entreprise: est entièrement vidé:

    <?php if(the_sub_field('company_name')) { ?>
        <strong>Company name:</strong>
        <p><?php the_sub_field('company_name') ?></p>;
    <?php } ?>

EDIT: Placer le nom de la société: en dehors de l’instruction IF, mais je voudrais qu’elle soit dans l’instruction IF comme je le souhaite. sur que si cette affirmation est vraie bien sûr.

<?php

    echo '<strong>Company name:</strong>'; 
    if(the_sub_field('company_name')) {
        echo '<p>' . the_sub_field('company_name') . '</p>';
    }
?>
1
SixfootJames

Le problème est que the_sub_field() fait écho au sous-champ. Ainsi, dans votre condition, le champ company_name est répercuté.

Toutefois, cette fonction ne renvoie pas la valeur true, la condition n'est donc pas remplie.

Vous devez utiliser une autre instruction if:

if ( get_sub_field('company_name') && get_sub_field('company_name') != '' ) {

    // echo it

}
4
fischi