doubi7739 2017-03-30 10:01
浏览 54
已采纳

通过id从单页获取附件,并将其分页。 (WordPress的)

How to get attachment from single page by ID, and set 12 img per page?

'post_parent' => 145, // not working, but without this param I get all attachments

<?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;
            ?>
  • 写回答

2条回答 默认 最新

  • dongshi1914 2017-03-31 04:25
    关注

    I found out what the problem was. I use post_parent and tells post ID, thinking that take all attachments from this post, but WP_Query returns me ID's of images.

    I get all id's of images in array with get_post_gallery()

    $gal = get_post_gallery(11,false);
    

    and explode it

    $ids = explode(',', $gal['ids']);
    

    after then everything worked!

    also I use post__in insted post_parent

    The final code:

    <?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;
                ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 求解vmware的网络模式问题
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?