Intentando verificar y ver si una publicación tiene una imagen destacada fuera del bucle principal

2

Tengo una situación en la que necesito saber si la publicación cargada actualmente tiene una imagen destacada; si es así, quiero que muestre un logotipo diferente que si no tuviera una imagen destacada asociada a la publicar.

Esto funciona ahora mismo, pero no tiene la función de verificación que estoy buscando:

<?php echo is_front_page() ? '<h1 id="logo" class="h1 threecol first">' : '<strong id="logo" class="h1 threecol first">'; ?>
    <a href="<?php echo home_url(); ?>" rel="nofollow"><img src="<?php header_image() ?>" alt="<?php bloginfo('name'); ?> logo" height="<?php echo get_custom_header()->height; ?>" width="<?php echo get_custom_header()->width; ?>" /></a>
<?php echo is_front_page() ? '</h1>' : '</strong>'; ?>

Mi problema es que he revisado la documentación de WP para obtener get_posts o comenzar una nueva WP_query, pero no he tenido la suerte de entender cómo puedo:

  • ejecuta un nuevo bucle que obtiene la ID de la página y ve si tiene una imagen destacada
  • hacer una declaración estándar if / else después

Mi pensamiento con el if / else sería así:

<?php echo is_front_page() ? '<h1 id="logo" class="h1 threecol first">' : '<strong id="logo" class="h1 threecol first">'; ?>
    <a href="<?php echo home_url(); ?>" rel="nofollow">

    <? // IF/ELSE CODE TO EXECUTE IF post_has_thumbnail ?>
    <?php if ( has_post_thumbnail() ) : ?>      
    <img src="<?php header_image() ?>" alt="<?php bloginfo('name'); ?> logo" height="<?php echo get_custom_header()->height; ?>" width="<?php echo get_custom_header()->width; ?>" />
    <?php else : ?>
    <img src="/i/logo-no-feat-img.png" alt="<?php bloginfo('name'); ?> logo" height="120" width="222" />
    <?php endif; ?>
    <? // end ATTEMPTED IF/ELSE CODE ?>

    </a>
<?php echo is_front_page() ? '</h1>' : '</strong>'; ?>

CÓDIGO DE TRABAJO

    <?php echo is_front_page() ? '<h1 id="logo" class="h1 threecol first">' : '<strong id="logo" class="h1 threecol first">'; ?>
    <a href="<?php echo home_url(); ?>" rel="nofollow">
    <? // IF/ELSE CODE TO EXECUTE IF post_has_thumbnail ?>
    <?php if (is_home() || has_post_thumbnail(get_the_ID()) ) : ?>      
    <img src="<?php header_image() ?>" alt="<?php bloginfo('name'); ?> logo" height="<?php echo get_custom_header()->height; ?>" width="<?php echo get_custom_header()->width; ?>" />
    <?php else : ?>
    <img src="<?php echo get_template_directory_uri(); ?>/library/images/logo-without-feat_img.png" alt="<?php bloginfo('name'); ?> logo" height="302" width="203" />
    <?php endif; ?>
    <? // end IF/ELSE CODE ?>
    </a>
    <?php echo is_front_page() ? '</h1>' : '</strong>'; ?>
    
pregunta Tiger Danky 26.06.2013 - 22:38

1 respuesta

4

has_post_thumbnail() acepta una ID de publicación:

if ( is_singular() and has_post_thumbnail( get_the_ID() )
{
    // show post thumbnail
}
elseif ( is_front_page() )
{
    // show front page content
}
else
{
    // do something else
}
    
respondido por el fuxia 26.06.2013 - 22:45

Lea otras preguntas en las etiquetas