如何使用分页功能获取媒体库中的所有图像?

时间:2017-10-27 作者:palekjram

我想通过分页获取图像库中的所有图像,以便使用infinite-scroll 用它。

无限卷轴可以工作,但它记录的是帖子的数量,而不是图片。这意味着,如果我有6篇帖子,“最多显示2个博客页面”,即使我有更多的图片要加载,页面数也将是3。

我也在使用FoundationPress 作为一个框架,如果这有帮助的话。

这是我的代码:

<?php

            $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
            $args = array(
                \'posts_per_page\' => 10,
                \'post_type\' => \'attachment\',
                \'paged\'     => $paged
            );

            $attachments = get_posts( $args );
            if ( $attachments ) {
                foreach ( $attachments as $attachment ) {
                    $ia = wp_get_attachment_image_src( $attachment->ID, \'full\' );
                    ?>
                    <div class="grid__item">
                        <figure width="<?php echo $ia[1]; ?>" height="<?php echo $ia[2]; ?>">
                            <?php echo wp_get_attachment_image( $attachment->ID, \'full\' ); ?>
                        </figure>
                    </div>
                    <?php 
                }
            }

            ?>

1 个回复
SO网友:Harry Francis

编辑:对不起,我没有正确阅读你的代码!

您使用的是只检索帖子的get posts。要从媒体库获取所有图像,您需要使用WP\\u query。

$query_images_args = array(
    \'post_type\' => \'attachment\',
    \'post_mime_type\' =>\'image\',
    \'post_status\' => \'inherit\',
    \'posts_per_page\' => -1,
);

$query_images = new WP_Query( $query_images_args );
$images = array();
foreach ( $query_images->posts as $image) {
    $images[]= wp_get_attachment_url( $image->ID );
}
此代码将把媒体库中的所有图像URL放入$images数组。

参考号:https://wpeden.com/tipsntuts/list-all-images-at-media-gallery-in-your-wordpress-site/

结束