如何按ID从单页获取附件,并在每页设置12 img?
' post_parent' => 145,//不工作,但没有这个参数我得到所有附件
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$attachment = new WP_Query( array(
'post_parent' => 145, // not working, but without this param I get all attachments
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image/jpeg,image/gif,image/jpg,image/png',
'posts_per_page' => 12,
'paged' => $paged
) );
if ( $attachment->have_posts() ) :
while ( $attachment->have_posts() ) : $attachment->the_post();
?>
<div class="gallery__item"><a href="<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>" data-fancybox><img src="<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>" alt=""></a></div>
<?php
endwhile;
wp_reset_postdata();
endif;
?>
答案 0 :(得分:0)
通过查看代码,您正在使用 post_parent ,这在
中很清楚基本上说只有有孩子的帖子才会返回当前提供的帖子ID,即145.
我认为你必须使用 post_parent__in 而不是当前的。
希望这适合你。
谢谢
答案 1 :(得分:0)
我发现了问题所在。我使用 post_parent 并告诉帖子ID,认为从这篇文章中获取所有附件,但是WP_Query会返回我的ID图像。
我使用 get_post_gallery()
获取数组中所有图片的ID$gal = get_post_gallery(11,false);
并将其爆炸
$ids = explode(',', $gal['ids']);
之后一切正常!
我也使用 post__in insted post_parent
最终代码:
<?php
$gal = get_post_gallery(11,false);
$ids = explode(',', $gal['ids']);
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$attachment = new WP_Query( array(
'post__in' => $ids,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image/jpeg,image/gif,image/jpg,image/png',
'posts_per_page' => 12,
'paged' => $paged
) );
if ($attachment -> have_posts() ) :
while ($attachment -> have_posts() ) : $attachment -> the_post();
?>
<div class="gallery__item"><a href="<?php echo wp_get_attachment_url(); ?>" data-fancybox><img src="<?php echo wp_get_attachment_url(); ?>" alt=""></a></div>
<?php
endwhile;
wp_reset_postdata();
endif;
?>