如何使用某个类别中最近一篇帖子的特色图片作为背景图片

时间:2017-04-10 作者:OscarGuy

我想在头版的特定div中的特定类别中显示最新的文章标题,可能是摘录。我还想用那篇文章的特色图片作为div的背景。有什么方法可以做到这一点吗?该DIV的当前显示如下所示:

<div class="Header_Section_Left"><span class="Category_Header_Title">ACADEMY AWARDS<br /></span><div id="Header_Upper_Left">

<?php
$cinemasight_header_query = new WP_Query( array( 
    \'category_name\' => \'academy-awards\',
    \'posts_per_page\' => 3 
) );

if ($cinemasight_header_query->have_posts()) :
while($cinemasight_header_query->have_posts()) :
    $cinemasight_header_query->the_post();

if( 0 == $cinemasight_header_query->current_post ) :
  $thumbnail_id = get_post_thumbnail_id();
  $image_src = wp_get_attachment_image_src( $thumbnail_id );?>

<div class="Categories_Upper_Left">
  <a href="<?php the_permalink() ?>"><?php echo the_title(); ?></a>
</div>

  <?php continue;
endif;?>

<span class="Categories_Upper_Left">
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a><br />
</span>

<?php endwhile;

endif;

wp_reset_postdata();?>
</div>
我试图在上面的Header\\u Upper\\u Left div中插入以下内容,但没有显示任何内容。如果我把它放在Categories\\u Upper\\u Left div中,它确实会显示一个背景图像,但只显示该帖子链接的URL。

  style="background-image: url( \'<?php echo $image_src[0]; ?>\') ;"
我是否有什么做错了,或者我需要在部门内打另一个电话才能让它正常工作?

Here\'s the solution that resolved my issue. 为了避免混乱,我只发布了内容的相关部分。本质上,我只是在提取图像信息后,将Header\\u Section\\u Left DIV块移动到脚本中的点。我还添加了一段单独的代码,我们在下面的评论中讨论了这些代码,以获取完整图像,而不仅仅是它的缩略图。

if( 0 == $cinemasight_header_query->current_post ) :
  $thumbnail_id = get_post_thumbnail_id();
  $image_src = wp_get_attachment_image_src( $thumbnail_id $size = \'full\');?>

<div class="Header_Section_Left"><span class="Category_Header_Title">ACADEMY AWARDS<br /></span><div id="Header_Upper_Left">

<div class="Categories_Upper_Left">
  <a href="<?php the_permalink() ?>"><?php echo the_title(); ?></a>
</div>

1 个回复
最合适的回答,由SO网友:CK MacLeod 整理而成

$image_src 当“Header_Upper_Left”div出现时还不存在。因此,在实际使用之前,您需要放置用于派生您想要使用的任何图像的代码$image_src.

有几种方法可以做到这一点。很多主题都有这样做的一种方法,就像那些具有顶级“特色帖子”或“帖子”格式的主题一样,就是启动查询,只获取最新的帖子(及其数据、附件、内容),然后如果您将其用作主循环并再次显示同一帖子,则回放查询。

另一种方法是将特殊div从主查询中分离出来,并使用单独的查询或像get\\u posts()或wp\\u get\\u recent\\u posts()这样的包装器来获取post ID,然后使用post ID来获取附件ID。

相关推荐

Categories manage

我正在尝试向CPT中添加特定类别,只有在添加新帖子时,您才能看到与这些帖子类型相关的类别。此外,我希望能够从后端添加类别,而不是从代码添加类别,因为我有很多类别将要更改。如果有一个插件可以做到这一点,那很好,但我也希望了解它是如何做到的。非常感谢