Comprobando si hay una imagen insertada, si no, no muestra nada

2

Entonces, dentro de mi Personalizador, tengo una sección que controla este Control deslizante en la página de inicio: es posible que el cliente no quiera usar todas las imágenes del Control deslizante, pero todos los controles deslizantes aún se muestran de todos modos y los que no tienen una Imagen solo muestran la etiqueta alt .

¿Hay una manera de verificar básicamente si hay una imagen y, si no, no se muestra esa diapositiva?

EDIT : estoy tratando de lograr algo similar a post_thumbnail como en si hay una imagen y luego la muestra, pero si no hay una, no la muestre en absoluto.

Así es como obtengo el mago Slider:

<div class="item active">
    <img class="img-responsive" src="<?php echo esc_url( get_theme_mod( 'slider_one' ) ); ?>" alt="Slider 1">
</div>

Luego lo registro en mi Customizer.php :

/**
 * Adding the Section for Slider
 */
$wp_customize->add_section('slideshow', array(
    'title'             => __('Slider Images', 'patti-theme'), 
    'priority'          => 60,
));

/**
 * Adding the Settings for Slider
 */
$wp_customize->add_setting('slider_one', array(
    'transport'         => 'refresh',
    'height'            => 525,
));  

/**
 * Adding the Controls for Slider
 */
$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'slider_one_control', array(
    'label'             => __('Slider Image #1', 'patti-theme'),
    'section'           => 'slideshow',
    'settings'          => 'slider_one',    
)));

Entonces, hay una manera de verificar si slider_one tiene una imagen insertada y si no, no la muestra.

Lo que se muestra si no hay Imagen insertada:

Luego,hacenclicenSeleccionarimagenymuestranlaBibliotecademediosdondepuedenseleccionareImagenoinclusoCargarunanuevaimagen

CómoelControldeslizantegeneralaimagensinohayimagen:

Noquieroqueestecontroldeslizantesemuestreenabsolutosielelementosrcdentrodelaetiquetaimgestávacío.

Elcontroldeslizantegeneralaimagenconestalíneadecódigo:

<imgclass="img-responsive" src="<?php echo esc_url( get_theme_mod( 'slider_one' ) ); ?>" alt="Slider 1">
    
pregunta Stephen 11.02.2016 - 10:38

2 respuestas

3

Prueba el siguiente código:

<div class="item active <?php
    // If image URL is empty, echo "hidden"
    echo (get_theme_mod('slider_one', '') == '' ? 'hidden' : '');
?>">
    <img class="img-responsive" src="<?php echo esc_url( get_theme_mod( 'slider_one', '' ) ); ?>" alt="Slider 1">
</div>

Luego usa el siguiente CSS:

.hidden { display: none }

Lo que esto hará es:

  • Si no se selecciona ninguna imagen (es decir, get_theme_mod(...) == '' )
  • clase de eco hidden
  • El CSS ocultará todos los elementos con .hidden
respondido por el Kaspar Lee 11.02.2016 - 13:46
2

¿Solo realiza una comprobación condicional un poco antes para envolver el div?

<?php if ( get_theme_mod( 'slider_one', '') != '') : ?>
<div class="item active">
    <img class="img-responsive" src="<?php echo esc_url( get_theme_mod( 'slider_one', '' ) ); ?>" alt="Slider 1">
</div>
<?php endif; ?>
    
respondido por el majick 11.02.2016 - 12:42

Lea otras preguntas en las etiquetas