遍历所有帖子,如果有(WordPress)显示附件

时间:2014-02-27 17:23:55

标签: php wordpress

我创建了两个简单的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缺乏经验,所以这可能是完全错误的。)

1 个答案:

答案 0 :(得分:0)

从您提供的代码中,您所说的是遍历所有帖子,并且每个帖子循环遍历所有附件并返回第一个附件,然后转到下一个帖子。您需要具有将附件绑定到帖子的标识符。例: 你有一系列有ids 1,3,5,7的帖子。当您遍历帖子数组时,您想要获取与您当前正在循环的特定帖子ID相关联的附件。

希望有所帮助。我不熟悉WordPress语法,但我认为它将是......

$get_images_array = array( 'posts_per_page' => 1, 'post_type' => 'attachment', 'post_id' => $post->ID );