如何从特定页面的子页面中检索附件?

时间:2012-06-15 作者:Joe

如何从所有subpages 特定页面ID的?

示例:

特定页面

孩子(带附件)

  • 孩子(带附件)
  • 孩子(带附件)
  • 我目前正在使用此代码检索站点范围内的所有附件,但是我想将此限制为仅从特定页面的所有子级提取图像。

    $args = array( 
        \'post_type\'   => \'attachment\', 
        \'numberposts\' => -1, 
        \'post_status\' => null, 
        \'post_parent\' => null 
    ); 
    $attachments = get_posts( $args );
    if ( $attachments ) {
        foreach ( $attachments as $post ) {
            setup_postdata( $post );
            the_title();
            the_attachment_link( $post->ID, false );
            the_excerpt();
        }
    }
    
    使用下面的代码几乎可以做到:

    $mypages = get_pages( \'child_of=19\' );
    foreach ( $mypages as $mypage  ) {
        $attachments = get_children( array(
            \'post_parent\'    => $mypage->ID, 
            \'numberposts\'    => 1, 
            \'post_type\'      => \'attachment\', 
            \'post_mime_type\' => \'image\', 
            \'orderby\'        => \'rand\'
        ) );        
        if ( $attachments ) {
            foreach ( $attachments as $post ) {
                setup_postdata($post);
                    the_title();
                    the_attachment_link( $post->ID, false );
                    the_excerpt();
            }
        }
    }
    
    然而,还有两个问题:

    限制total photos 拉动。使用\'numberposts\' 仅限制从每篇帖子中提取的图像数量Orderby => rand 仅随机化每篇文章中的图像。我想随机改变所有东西的顺序

  • 2 个回复
    SO网友:Damien

    你的做法是对的。。。

    您的查询就像一个循环。。。因此,要限制总图像数,首先需要将它们全部添加到一个数组中,然后如何确定如何限制总图像数,例如,如果一页有50个图像,而下一页有1个

    随着你的第一点。。。您当前的代码是一个贯穿每个子页面的循环。因此,您需要先将所有图像放入一个数组中,然后才能将它们随机排列。

    建议-试试这个WordPress Codex wp_get_attachment_image 列出页面上的图像

    并将其与您的codex/code示例进行比较http://codex.wordpress.org/Template_Tags/get_posts#Show_all_attachments

    达米恩

    SO网友:AddWeb Solution Pvt Ltd

    你可以试试get_pages 就像这样:

    <?php 
        $args = array(
            \'child_of\' => \'YOUR PAGE\',
            \'parent\' => \'YOUR PAGE\',
            \'post_type\' => \'attachment\',
            \'post_status\' => \'publish\',
            \'numberposts\' => -1
        ); 
    ?>
    
    NOTE: <请注意,参数的child\\u还将获取给定ID的“孙子”,而不仅仅是直接后代。父级将此限制为仅将此作为父级的子级。没有孙子。因此,您可以将所有附件数据存储在多维数组中并将其洗牌。然后使用for循环显示适当数量的附件。

    结束

    相关推荐

    在“标签存档”页面上按标签插件过滤QUERY_POST(当标签为2个或更多单词时)

    我使用以下内容打开标记存档页面:<?php query_posts( \"tag=\". \'\' . single_tag_title( \'\', false ) . \'\' ); ?> 这只适用于一个单词的所有标记,但任何多个单词的标记(例如:“tag one”,slug:“tag one”)都不会显示。是否可以按tag slug而不是single\\u tag\\u title查询\\u帖子?谢谢