Как я могу проверить миниатюру в WordPress? - PullRequest
4 голосов
/ 16 февраля 2012

Как я могу проверить, есть ли в сообщении миниатюра и если что-то делает? Если не делает что-то еще. Вот что у меня есть:

        <?php if(have_posts()) : ?>
            <?php while (have_posts()) : the_post(); ?>

                <?php if ( has_post_thumbnail() ) { ?>
                        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                <?php 
                }else{ 
                ?>
                    <?php the_post_thumbnail(); ?> 
                <?php
                } 
                ?>  

            <?php endwhile; ?>

        <?php endif; ?>

Любая помощь будет признательна.

Ответы [ 4 ]

6 голосов
/ 17 февраля 2012

У вас уже есть это, в строке

if ( has_post_thumbnail() )

вы проверяете, есть ли в сообщении миниатюра, проблема в том, что вы ввели неверный код в оператор else, вы должны указать что-то вроде:

  <?php if ( has_post_thumbnail() ) { ?>
      <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
      <?php the_post_thumbnail(); ?> 
      HAVE THUMBNAIL DO SOMETHING
  <?php 
      }else{ 
  ?>
      DOESN'T HAVE THUMBNAIL : DO SOMETHING ELSE
      <?php
  } 
  ?>  
2 голосов
/ 07 февраля 2017

Попробуйте использовать следующую строку кодов:

    <?php if(has_post_thumbnail())
        { 
        ?>
            <img src="<?php the_post_thumbnail_url(); ?>" id="contextual" class="contextual" alt="" />

        <?php 
        }
else{       
        ?>
        <img src="<?php echo get_template_directory_uri(); ?>/design/images/i-default.jpg" id="contextual" class="contextual" alt="" />
<?php } ?>
0 голосов
/ 24 мая 2018

Чтобы связать миниатюры сообщений с постоянной ссылкой сообщения в определенном цикле, используйте следующие файлы шаблонов вашей темы:

<?php if ( has_post_thumbnail() ) : ?>
    <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
        <?php the_post_thumbnail(); ?>
    </a>
<?php endif; ?>
0 голосов
/ 16 февраля 2012

сначала проверьте ваш файл functions.php для этого

if (function_exists('add_theme_support')) {
  add_theme_support('post-thumbnails');
}

если его там нет, скопируйте и вставьте его в свой файл ..

Во-вторых, добавьте это в ваши functions.php это позволяет вам возвращать Image Src, а не просто печатать весь тег img

function get_the_post_thumbnail_url( $post_id = NULL ) {
    global $id;
    $post_id = ( NULL === $post_id ) ? $id : $post_id;
    $src = wp_get_attachment_image_src(get_post_thumbnail_id($post_id), 'full');
    $src = $src[0];
    return $src;
}

Затем на странице шаблона измените свой код на что-то вроде: это использовалось как фоновое изображение

<?php if ( has_post_thumbnail() ) { ?>
    <div id="slider" style="background-image:url(<?php echo get_the_post_thumbnail_url($post->ID, 'large'); ?>); background-position: center center;">  
    </div>                
<?php 
}else{ 
?>
    <img src="<?php bloginfo('template_directory');?>/images/blank.jpg" alt="" /> 
<?php
} 
?> 

это должно создать div с примененным к нему фоновым изображением,

Если вы хотите, чтобы печатался полный тег тега img, просто используйте одно из следующих:

if (has_post_thumbnail()) { 
?>
    <?php the_post_thumbnail();            // just the image        ?>
    <?php the_post_thumbnail('thumbnail'); // just the thumbnail    ?>
    <?php the_post_thumbnail('medium');    // just the Medium Image ?>
    <?php the_post_thumbnail('large');     // just the Medium Image ?>
    <?php 
    // adding a 200x200 height and width along with a class to it.
        the_post_thumbnail(array( 200,200 ), array( 'class' => 'alignleft' )); 
    ?>
    <?php 
    // Adding a few classes to the medium image
        the_post_thumbnail('medium', array('class' => 'alignleft another_class')); 
    ?>

<?php
}

Marty ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...