如何在当前帖子中显示wordpress附件?

时间:2012-02-27 12:17:26

标签: wordpress thumbnails attachment

所以在我的博客上我有一个照片附件页面,但它一次只能显示照片,而这两张照片用作导航,我讨厌它。

我希望附件页面显示与该组其余部分一起出现的所有照片。

这是当前的代码

        <div id="nav-images" class="navigation clearfix">
            <div class="nav-next"><?php next_image_link() ?></div>
            <div class="nav-previous"><?php previous_image_link() ?></div>

如何更改它以显示所有帖子附件?

3 个答案:

答案 0 :(得分:5)

为了澄清,这不再适用 - 至少在版本3.5.2中。我改用了这个;

$attachments = get_children(
  array(
    'post_type' => 'attachment',
    'post_parent' => get_the_ID()
  )
);
foreach ($attachments as $attachment) {
  // ...
}

只恢复旧线程,因为这个搜索词的排名非常高。

答案 1 :(得分:2)

当您访问某个网页或帖子时,可以使用以下内容获取所有附件:

global $post; // refers to the post or parent being displayed
$attachements = query_posts(
  array(
    'post_type' => 'attachment',  // only get "attachment" type posts
    'post_parent' => $post->ID,   // only get attachments for current post/page
    'posts_per_page' => -1        // get all attachments
  )
);
foreach($attachements as $attachment){
  // Do something exceedingly fancy
}

由于您当前位于附件页面,因此您可以使用$post->post_parent值获取所有其他附件:

global $post; // refers to the attachement object
$attachements = query_posts(
  array (
    'post_type' => 'attachment',  // only get "attachment" type posts
    'post_parent' => $post->post_parent,  // attachments on the same page or post
    'posts_per_page' => -1        // get all attachments
  )
);

要显示附件图像,您可以使用wp_get_attachment_image_src功能。附件的ID将在您的foreach循环的每次迭代中以$attachement->ID的形式提供(如果您使用与我的第一个示例相同的命名约定)。

答案 2 :(得分:-1)

自WordPress 3.6.0起,您还可以使用get_attached_media

$media = get_attached_media( 'image', $post->ID );
if(! empty($media)){
    foreach($media as $media_id => $media_file){
        $thumbnail = wp_get_attachment_image_src ( $media_id, 'thumbnail' );
        $full = wp_get_attachment_url( $media_id );
        echo '<a href="'.$full.'" target="_blank"><img src="'.$thumbnail[0].'" alt="'.$media_file->post_title.'" /></a>';
    }
}