我创建了两个简单的foreach
循环:一个用于所有帖子,一个用于所有附件。我希望它显示每个帖子标题,如果有附件,则显示该附件。
$get_posts_array = array( 'posts_per_page' => 3, 'post_type' => 'post' );
$get_posts = get_posts( $get_posts_array );
foreach ($get_posts as $post)
{
the_title();
$get_images_array = array( 'posts_per_page' => 1, 'post_type' => 'attachment' );
$get_images = get_posts($get_images_array);
if ($get_images)
{
foreach ( $get_images as $post )
{
?>
<li> <?php the_attachment_link( $post->ID ) ;?> </li>
<?php
}
}
}
?>
但是,它没有按预期工作。
它检索每个帖子标题,但对所有帖子使用相同的第一个附件。
任何帮助都会很棒(我对PHP缺乏经验,所以这可能是完全错误的。)
答案 0 :(得分:0)
从您提供的代码中,您所说的是遍历所有帖子,并且每个帖子循环遍历所有附件并返回第一个附件,然后转到下一个帖子。您需要具有将附件绑定到帖子的标识符。例: 你有一系列有ids 1,3,5,7的帖子。当您遍历帖子数组时,您想要获取与您当前正在循环的特定帖子ID相关联的附件。
希望有所帮助。我不熟悉WordPress语法,但我认为它将是......
$get_images_array = array( 'posts_per_page' => 1, 'post_type' => 'attachment', 'post_id' => $post->ID );