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>

いいえ、ニンジン、角かっこ、引用符、その他のコードを省略しませんでした。これはコピーであり、出力方法を正確に過去のものです

編集:修正

修正ではjpgurlsansimgタグのみが吐き出されるため、HTMLを追加する必要がありました。さらに、正しい画像が表示されていませんでした-サムネイルバージョンではなく元の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 に答える