我正在处理的代码位于Twenty Seventeen的子主题中,位于content-front-page.php。我试图以某种方式显示每个类别(我有三个类别)中最新帖子的特色图像。如下所示:
最初,在每个彩色块中。我在php块中有这个:<?php
$recentport = new WP_Query(array('category_name' => 'ports-and-terminals', 'numberposts'=> 1, 'posts_per_page'=> 1));
while($recentport->have_posts()): $recentport->the_post();
$urlp = wp_get_attachment_url( get_post_thumbnail_id($post->ID), 'thumbnail' );
?>
<div style="height: 250px; position: relative">
<div style="height:inherit; background: url('<?php echo $urlp;?>'); background-size:cover; "> <!--i-->
<div id="img-overlay" style="height: inherit; background: linear-gradient(#0000ff, #000066); opacity: .7;">
</div>
<span class="feat-title-link">
<a href="<?php the_permalink(); ?>">
<?php the_title_limit(75, '...'); ?>
</a>
</span>
</div>
</div>
<?php
endwhile;
wp_reset_postdata();
?>
使用上述代码填充的精选图片。如果我在wordpress中添加新帖子并将其设置为包含上述代码的类别,则新帖子会显示在设置类别的下方或上方,例如:
这不是我想要的。我想在第一张图片中保留布局。所以...我将一个颜色块中的代码更改为此测试:<?php
$args = array('category_name' => 'ebusiness', 'numberposts'=>'1');
$recentcust = wp_get_recent_posts($args);
foreach( $recentcust as $post ){
$linkid = get_permalink($post["ID"]);
$thumb_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail' );
$thumb_url = $thumb_url[0];
echo '<a href="' . $linkid . '">' .$post["post_title"].'</a>';
echo (!empty($thumb_url)) ? $thumb_url : 'No thumb!';
}
wp_reset_query();
//$recentebiz = new WP_Query(array('category_name' => 'ebusiness', 'post_per_page'=>1));
//while($recentebiz->have_posts()): $recentebiz->the_post();
//$url = wp_get_attachment_url( get_post_thumbnail_id($post->ID), 'thumbnail' );
?>
<div id="recentebiz-tile" style="background: url('<?php echo $thumb_url;?>');">
</div>
以上代码不会填充每个类别中最近帖子的精选图片。因此,我的问题。这是我的逻辑:
$args
变量包含下一行的参数。$recentcust
变量使用我的参数集保存*wp_get_recent_posts*
查询的结果。$post.
foreach(){}
循环内: $ linkid = get_permalink($ post [“ID”]):$linkid
是带有$ post ID的链接。 foreach(){}
循环内: $ thumb_url = wp_get_attachment_image_src(
get_post_thumbnail_id($ post-&gt; ID),'thumbnail'):获取与$post
ID相关联的精选图片?foreach(){}
循环内: $ thumb_url = $ thumb_url [0] :获取第一张图片(数组位置为0)?foreach(){}
循环:echo $ thumb_url [0] 以显示精选图片。
醇>
但它没有显示它。我希望在每个代码块中显示特色图像。我知道我正在努力解决这个问题,但我想知道代码和Wordpress是如何工作的。我错过了什么吗?提前谢谢。
我用过的资源是提出这段代码:
答案 0 :(得分:0)
在你的这段代码中
$recentport = new WP_Query(array('category_name' => 'ports-and-terminals', 'numberposts'=> 1, 'posts_per_page'=> 1));
while($recentport->have_posts()): $recentport->the_post();
$urlp = wp_get_attachment_url( get_post_thumbnail_id($post->ID), 'thumbnail' );
?>
<div style="height: 250px; position: relative">
<div style="height:inherit; background: url('<?php echo $urlp;?>'); background-size:cover; "> <!--i-->
<div id="img-overlay" style="height: inherit; background: linear-gradient(#0000ff, #000066); opacity: .7;">
</div>
<span class="feat-title-link">
<a href="<?php the_permalink(); ?>">
<?php the_title_limit(75, '...'); ?>
</a>
</span>
</div>
</div>
<?php
endwhile;
wp_reset_postdata();
?>
正如我所看到的,你得到ports-and-terminals
最新帖子,然后在HTML中显示,而while循环继续这样做。
我认为您应该立即收到最近的帖子后关闭While
循环。