问题描述

我在这个示例小工具代码中遇到麻烦。我想从一个名为”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();

最佳解决方案

使用 get_children

我使用这个代码从选择的顺序从页面库中提取所有的图像。您可以将此代码包含在循环中或将其独立使用。只需选择适当的 post_parent 代码 (见代码示例) 。

此示例显示与页面 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(将 1 替换为您的页面 ID)

你也可以使用:

'post_parent' => $post->ID

如果要在循环中使用 get_children,并从返回的帖子标识中获取帖子 ID 。

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

希望这可以帮助! 🙂

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。