0

我正在尝试获取缩略图以显示它是否存在于 div 类中,但它以意想不到的方式输出代码(例如永久链接在 href 之外)

我究竟做错了什么?

<?php
 if (has_post_thumbnail( $post->ID ) ) {
   $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' );
   echo '<div class="thumbnail"><a href="' . the_permalink() . '">' . $image[0] . '</a></div>';
 } else {
   echo '';
 }
?>

结果是

 http://www.permalink.com/<div class="thumbnail"><a href="">http://www.mysite.com/wp_myblog/wp-content/uploads/2011/10/fretless-thumbnail1.jpg</a></div>

不,我没有遗漏任何胡萝卜、括号、引号或任何其他代码。这是复制和过去的确切输出方式

编辑:修复

我不得不添加一些额外的 html,因为修复只吐出 jpg url sansimg标签。另外,它没有显示正确的图像 - 它显示的是原始 jpg 而不是缩略图版本

<?php
    if (has_post_thumbnail( $post->ID ) ) {
        $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'thumbnail' );
        echo '<div class="thumbnail"><a href="' . get_permalink() . '">' . '<img src="' . $image[0] . '"></a></div>';
    }
?>

耶!

4

1 回答 1

3

the_permalink函数echo已经包含一个语句。

将其更改为get_permalink,它应该可以正常工作:

<?php
    if (has_post_thumbnail( $post->ID ) ) {
        $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' );
        echo '<div class="thumbnail"><a href="' . get_permalink() . '">' . $image[0] . '</a></div>';
    }
?>

你也不需要那个else位。这可能是多余的。

事实上,对于一个更简洁的替代方案,这可能会起作用(从我自己的代码修改;只是添加了链接):

<?php if ( has_post_thumbnail() ) : ?>
    <div class="hover_img">
        <a href="<?php the_permalink(); ?>">
            <?php the_post_thumbnail('thumbnail'); ?>
        </a>
    </div>
<?php endif; ?>
于 2012-07-12T23:28:15.707 回答