所以在我的博客上我有一个照片附件页面,但它一次只能显示照片,而这两张照片用作导航,我讨厌它。
我希望附件页面显示与该组其余部分一起出现的所有照片。
这是当前的代码
<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>
如何更改它以显示所有帖子附件?
答案 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>';
}
}