0

我的 WordPress 博客包含以下片段:

<?php
    $images = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full');
    if (count($images) > 0) { ?>

       <div class="image-holder">
       <a href="<?php the_permalink(); ?>"><img src="<?php bloginfo('template_directory') ?>/javascript/timthumb.php?src=<?php echo $images[0]; ?>&amp;h=320&amp;w=630&amp;zc=1" alt="<?php the_title();?>"  /></a>             
       </div>

    <?php }
?>

这会在实际内容的顶部显示标题图像(特色图像)并使用 timthumbb 调整其大小。这里一切都很好,但是如果没有定义的特色图像,它会显示损坏的 img src。有没有办法编辑它以便仅在实际存在的情况下显示图像?

4

4 回答 4

0

我用了这个,它工作正常:

// get the ancestors
$familyTree = get_ancestors($post->ID, 'page');
array_unshift($familyTree, $post->ID); //add the current page to the beginning of the list

// loop through the family tree until you find a result or exhaust the array
$featuredImage = '';
foreach ($familyTree as $family_postid) {
    if (has_post_thumbnail($family_postid)) {
        $featuredImage = get_the_post_thumbnail($family_postid, 'full');
        // the 'full' argument tells WordPress not to re-size the image to thumbnail dimensions
        break;
    }
}

// if the page has a featured image then show it
echo ($featuredImage ? $featuredImage : "");

它还将特色图片应用于子页面,除非子页面有自己的特色图片,不确定您是否想要,但如果没有特色图片,不显示任何内容应该不会太难。

于 2013-04-19T13:16:08.450 回答
0
Try using this logic

<?php

    if($images[0]!='')
    {
     <div class="image-holder">
           <a href="<?php the_permalink(); ?>"><img src="<?php bloginfo('template_directory') ?>/javascript/timthumb.php?src=<?php echo $images[0]; ?>&amp;h=320&amp;w=630&amp;zc=1" alt="<?php the_title();?>"  /></a>             
           </div>
    }

    ?>
于 2013-04-19T13:16:37.017 回答
0

如果只有一张图片,您可以使用

if ($images[0]!='') {
于 2013-04-19T13:16:49.083 回答
0

您可以使用该功能has_post_thumbnail()检查帖子是否有特色图片。

用法:

    $images = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full');
    if (count($images) > 0) { ?>

       <div class="image-holder">
       <a href="<?php the_permalink(); ?>"><img src="<?php bloginfo('template_directory') ?>/javascript/timthumb.php?src=   <?php echo $images[0]; ?>&amp;h=320&amp;w=630&amp;zc=1" alt="<?php the_title();?>"  /></a>             
       </div>

    <?php }
} ?>
于 2013-04-19T13:17:13.013 回答