Si el campo personalizado está vacío, no mostrar el div

15 mar 2016, 12:46:13
Vistas: 17.2K
Votos: 3

Estoy buscando una mejor manera de ocultar un div cuando un campo personalizado está vacío. He descubierto cómo ocultar el div pero tengo bastantes campos personalizados y preferiría no escribir el código para cada uno.

(Nota: Estoy usando el plugin Advanced Custom Fields.)

Básicamente quiero ocultar el título de la sección si el campo debajo de él está vacío.

Gracias

<div class="section-title">Servicios para Individuos</div>
    <div class="section-text">
        <?php the_field('services_for_individuals') ?>
    </div>
</div>

    <div class="section-title-business">Servicios para Empresas</div>    
        <div class="section-text">
            <?php the_field('services_for_businesses') ?>
        </div>
    </div>
</div>
<?php
    $value = get_field( "services_for_businesses" );
    if ( $value ) {
        echo $value;
    } else {
?>

<style type="text/css">
    .section-title-business {
        display:none; } 
</style>

<?php
}    
?>
2
Comentarios

¿Tus campos van a estar anidados como los tienes ahora, o cada campo va a estar en su propio elemento contenedor DIV? Actualmente tienes los Servicios para Empresas anidados dentro del DIV de Servicios para Individuos... ¿es correcto? Mencionaste que tendrás muchos otros campos, ¿también estarán anidados?

sMyles sMyles
15 mar 2016 17:00:11

sí, cada uno estará anidado en su propio DIV, parece que falta una etiqueta de cierre

A.Copland A.Copland
18 mar 2016 11:19:02
Todas las respuestas a la pregunta 1
0

Prueba esto:

<?php 
     $servicios_empresas = get_field( "services_for_businesses" ); 
     //etc...
?>

<div class="section-title">Servicios para Individuos</div>

    <div class="section-text">
        <?php the_field('services_for_individuals') ?>
    </div>

    <?php if ( $servicios_empresas ) : ?>

    <div class="section-title-business">Servicios para Empresas</div>    
        <div class="section-text">
            <?php echo $servicios_empresas; ?>
        </div>
    </div>

    <?php endif; ?>

</div>

Puedes abstraer aún más el código si necesitas mostrar u ocultar más de un campo.

15 mar 2016 13:41:02