使用此查询从单个页面获取所有图像

时间:2012-01-17 作者:Dean Elliott

我对这个示例小部件代码有一些问题。我想从名为“Gallery”的页面获取所有图像(减去帖子缩略图),但出于某种原因,这会从整个网站中提取所有上传的图像。

此外,我如何从该查询中排除帖子缩略图?

  query_posts(\'pagename=gallery\');
if (have_posts()) : 
echo "<ul class=\'recentwidget group photowidget\'>";
while (have_posts()) : the_post();
    $args = array(
    \'post_type\' => \'attachment\',
    \'numberposts\' => 1,
    \'post_status\' => null,
    \'post_parent\' => $post->ID
);

$attachments = get_posts( $args );
    if ( $attachments ) {
    foreach ( $attachments as $attachment ) {
       echo \'<li class="left imageshadow photolarge">\';
       echo wp_get_attachment_image( $attachment->ID, \'full\' );
       echo \'</li>\';
      }
    }
endwhile;

endif; 
wp_reset_query();

2 个回复
最合适的回答,由SO网友:Ole Henrik Skogstrøm 整理而成

使用get\\u children我使用此代码按所选顺序从页面库中提取所有图像。您可以在循环中包含此代码,也可以单独使用它。只需选择适当的post\\u父代码(请参见下面的代码示例)。

此示例显示与页面id 1关联的所有图像,请查看:

        $images = get_children( array( \'post_parent\' => 1, \'post_type\' => \'attachment\', \'post_mime_type\' => \'image\', \'orderby\' => \'menu_order\', \'order\' => \'ASC\', \'numberposts\' => 999 ) ); 
/* $images is now a object that contains all images (related to post id 1) and their information ordered like the gallery interface. */
        if ( $images ) { 

                //looping through the images
                foreach ( $images as $attachment_id => $attachment ) {
                ?>

                            <?php /* Outputs the image like this: <img src="" alt="" title="" width="" height="" /> */  ?> 
                            <?php echo wp_get_attachment_image( $attachment_id, \'full\' ); ?>

                            This is the Caption:<br/>
                            <?php echo $attachment->post_excerpt; ?>

                            This is the Description:<br/>
                            <?php echo $attachment->post_content; ?>

                <?php
                }
        }
找到要从中提取图像的帖子id,并将其插入此参数:\'post_parent\' => 1 (用您的页面id替换1)

您还可以使用:

\'post_parent\' => $post->ID
如果要在循环中使用get\\u子项,并从返回的post id中获取post id。

如果要排除选定为特色图像的图像,我将使用if 语句检查图像URL是否等于特征图像URL。

希望这有帮助!:)

SO网友:Barış Atasoy

最简单的方法是使用get_attached_media(). 有许多不同的方式,几乎所有的方式都包括在内here

结束

相关推荐

使用wp_enQueue_script附加jQuery-UI

我正在尝试使用wp\\u enqueue\\u脚本加载jquery ui。我可以检查jquery是否已加载。jquery ui已注册,即var\\u dump的输出(wp\\u script\\u是(\'jquery ui tabs\',\'registered\');为bool(true),表示已注册,但未包含在页面中。我正在使用wordpress版本3.3.1出了什么问题?我附上函数的相关片段。php来自我的主题。<?php function my_scripts_method() {&