问题:WP_QUERY输出站点上的所有图像

时间:2016-12-21 作者:warm__tape

我对一个查询有问题。我想把这些图片附在一个出租类型的帖子上。

我的查询被破坏,因为它输出整个站点上的所有图像:

$image_query = new WP_Query( 
    array( 
        \'post_type\' => \'attachment\', 
        \'post_status\' => \'inherit\', 
        \'post_mime_type\' => \'image\', 
        \'posts_per_page\' => -1, 
        \'post_parent\' => $rental->post->ID,
        \'order\' => \'DESC\' 
    ) 
);

if( $image_query->have_posts() ){
 while( $image_query->have_posts() ) {
     $image_query->the_post();
     $imgurl = wp_get_attachment_url( get_the_ID() );
     echo \'<div class="item">\';
     echo \'<img src="\'.$imgurl.\'">\';
     echo \'</div>\';
 }

 wp_reset_postdata();

}
有什么想法可以让我调整一下,只把图片贴到当前帖子上吗?

2 个回复
最合适的回答,由SO网友:ngearing 整理而成

您的问题是post_parent 参数,如果将其设置为0或null等假值,则查询将返回所有顶级帖子。

因此,您只需确保$rental->post->ID有一个值,或者使用不同的方法,如get_the_ID() 作用

不能告诉你更多,因为你没有包括你设置的部分$rental

$image_query = new WP_Query( 
    array(
        \'post_type\' => \'attachment\',
        \'post_status\' => \'inherit\',
        \'posts_per_page\' => -1,
        \'post_parent\' => get_the_ID(), // your issue here lays
    )
);
并查看文档以了解更多详细信息:https://developer.wordpress.org/reference/classes/wp_query/#post-page-parameters

SO网友:warm__tape

是的,这很有帮助。我注意到该功能在标准帖子上运行得非常好。我基本上把函数移到了函数中。php:

function get_rental_carousel_images($rental_id) {

// loosely based on http://martyspellerberg.com/2011/11/outputting-the-wordpress-attachments-gallery/

global $rental;

$images = get_children( array(
    \'post_parent\' => $rental_id,
    \'post_status\' => \'inherit\',
    \'post_type\' => \'attachment\',
    \'post_mime_type\' => \'image\',
    \'order\' => \'ASC\',
    \'orderby\' => \'menu_order ID\'
) );

if ($images) :

    foreach ($images as $attachment_id => $image) :

        $img_url = wp_get_attachment_url( $image->ID );

        ?>

        <img src="<?php echo $img_url; ?>" />

    <?php endforeach; ?>

<?php endif;
然后在我的模板中输出图像,如下所示:

<?php get_rental_carousel_images( get_the_ID() ); ?>

相关推荐

Ordering terms whilst in loop

我有一个页面模板,显示所有;“发布”;在两个自定义分类中,帖子显示在一个表中$type = $_GET[\'type\']; $category = $_GET[\'category\']; args = array( \'post-type\' => \'literature\', \'posts_per_page\' => -1, \'tax_query\' => array(