WordPress : Comment puis-je masquer le titre de ma section s’il n’y a pas de données dans les champs personnalisés ?

Publié par Jean-Michel le

J’ai écrit cette fonction avec un foreach et je n’arrive pas à comprendre comment masquer le titre de la section s’il n’y a pas de champs personnalisés dans $lista. Où dois-je placer le titre de la section ?

function opening_hours_custom_fields() {

/*Define custom fields in this case with Genesis*/
$lista = genesis_get_custom_field('_happy_day', $post->ID);

/*Section title */
echo '<h3>Happy Day</h3>';
/* the rule to display items in foreach loop */
if( $lista )
 {
foreach( $lista as $key => $value ){
    /* if value is nothing the display none */
    if( $value != '')
    {

        echo "<li> $value </li>";
    }

}
echo '</div>';
 }
}

Solution n°1 trouvée

Je voudrais d’abord boucler $listaet générer un nouveau tableau de données qui n’a que des valeurs non vides. Vous pouvez maintenant vérifier $valuesqu’il y a des données et afficher votre titre :

function opening_hours_custom_fields() {
    global $post;

    if ( $lista = genesis_get_custom_field( '_happy_day', $post->ID ) ) {
        $values = array();
        foreach ( $lista as $value ) {
            if ( $value != '' )
                $values[] = $value;
        }

        if ( $values ) {
            echo '<h3>Happy Day</h3>';
            echo '<ul>';
            foreach ( $values as $value )
                echo "<li>$value</li>";
            echo '</ul>';
        }
    }
}

Solution n°2 trouvée

Tant que la boucle ne sera exécutée que s’il y a des champs personnalisés, vous pouvez simplement déplacer le titre juste avant la boucle foreach :

/* the rule to display items in foreach loop */
if( $lista )
{
  /*Section title */
  echo '<h3>Happy Day</h3>';

  foreach( $lista as $key => $value ){

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *