WordPress : Comment puis-je masquer le titre de ma section s’il n’y a pas de données dans les champs personnalisés ?
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 $lista
et générer un nouveau tableau de données qui n’a que des valeurs non vides. Vous pouvez maintenant vérifier $values
qu’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 ){
0 commentaire