在我的网站主页上,我有一系列链接到网站各个部分的互动程序。一个平铺链接到博客,我已经编写了一些代码来提取最新的帖子,并将其与帖子标题一起输出。以下是主题文件中的代码:
$z=0; //sets post counter
query_posts(array( \'meta_key\' => \'_thumbnail_id\' )); ?>
<?php if(have_posts()) : ?>
<?php while(have_posts() && $z<1) : the_post();
//Call a post image attachment
$args = array( \'post_type\' => \'attachment\', \'numberposts\' => 1, \'post_status\' => null, \'post_parent\' => $post->ID );
$attachments = get_posts($args);
if ($attachments) {
foreach ( $attachments as $attachment ) {
$image = wp_get_attachment_image_src($attachment->ID,\'homethumbs\');
?>
<a href="<?php echo get_posts_page_url(); ?>" title="Visit the Serge Blog" id="homelink3" class="top_homelink"><img src="<?php echo $image[0]; ?>" width="308" height="308" id="home-blogthumb" class="side-homethumb wp-post-image" /> <p class="home_text">Blog<br/><span class="home_thumb_caption">Latest Post: <?php the_title(); ?></span></p> </a>
<?php $z++;
}
//$usedthumbnails[] = get_the_post_thumbnail();
}
?>
<?php
endwhile;
endif;
wp_reset_query(); ?>
我意识到这段代码实际上并没有得到特征图像,而是得到了一张附在帖子上的图像。这是因为博客海报有时会忘记“设置为特色图片”,但上传到帖子上的任何图片都会自动附加。在3.5版本中,特色图片似乎不一定附在帖子上,因此上面的代码将丢失这些图片。解决这个问题的最佳方法是什么?也许只需要调用最新的特色图片。。。我可以确保发帖人在他们的帖子中添加特色图片。
该网站是http://sergedenimes.com
EDIT: 这是我的更新代码:
<?php
global $post;
$args = array( \'numberposts\' => 1, \'meta_key\' => \'_thumbnail_id\' );
$myposts = get_posts( $args );
foreach( $myposts as $post ) : setup_postdata($post);
$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), \'homethumbs\' );
?>
<a href="<?php echo get_posts_page_url(); ?>" title="Visit the Serge Blog" id="homelink3" class="top_homelink"><img src="<?php echo $thumb[0]; ?>" width="308" height="308" id="home-blogthumb" class="side-homethumb wp-post-image" /> <p class="home_text">Blog<br/><span class="home_thumb_caption">Latest Post: <?php the_title(); ?></span></p> </a>
<?php endforeach; ?>
我想确定的是,如果我发布了一篇新文章,但没有给它一张特色图片,那么上面的查询是否会忽略它,并输出最后一篇有特色图片的文章?我希望
\'meta_key\' => \'_thumbnail_id\'
辩论应该做到这一点。如果我错了,我希望不会得到附件的url,主页上的互动程序将是空白的(没有图像)。