如何在WordPress中检查缩略图?

时间:2012-02-16 03:15:35

标签: php wordpress wordpress-theming

我怎样才能检查帖子是否有缩略图以及是否有效?如果不做其他事情。这就是我所拥有的:

        <?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; ?>

任何帮助都会受到赞赏。

3 个答案:

答案 0 :(得分:6)

你已经拥有了这一行

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
  } 
  ?>  

答案 1 :(得分:2)

尝试使用以下代码:

    <?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 } ?>

答案 2 :(得分:0)

首先检查你的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
}

玛蒂..