循环通过所有帖子,如果有,则显示附件

时间:2014-02-27 作者:tmyie

我创建了两个简单的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 个回复
SO网友:Steven Jones

您不能使用the_title() 因为你还没有设置post数据。

您需要使用以下标题:

$post->post_title;
要获取附件,可以使用get\\u children()如下所示:

$args = array(
    \'numberposts\' => 1,
    \'post_parent\' => $post->ID,
    \'post_type\' => \'attachment\'
);

$attachments = get_children( $args );

foreach($attachments as $attachment) {
  // Do your stuff
}
问题是一篇文章上可能有多个附件,所以这可能是不可预测的。你想得到什么样的依恋?您可以使用:

\'post_mime_type\' => \'image\'
例如,作为参数的一部分-如果您只想要图像。

如果您有选择的话,更好的方法是使用post缩略图或元键/值(自定义字段),以便用户可以专门添加附件。

结束

相关推荐

Redirect loop in /wp-admin/

今天,我管理的一个网站管理员无法访问。我刚刚在服务器上更新了apache,以启用mod\\u deflate,并将PHP从5.3升级到5.4。因为每次我尝试访问/wp admin/I时都会收到重定向循环错误。我尝试了所有常见的嫌疑犯,即:清除了Cookie和缓存,尝试了不同的浏览器,禁用了主题,删除了禁用的Cookie。htaccess检查了wp\\U选项中的site\\u url等,但运气不佳。我可以访问wp登录。php很好,但不是/wp管理员/任何帮助都将不胜感激,因为我完全被难住了。