查询附件图像…如果没有附件->获取父页面的附件?

时间:2012-08-13 作者:mathiregister

我用它来查询当前页面或帖子的所有附件…

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

$attachments = get_children($query_images_args);

if ( empty($attachments) ) {
    $query_images_args = array(
        \'post_type\' => \'attachment\',
        \'post_mime_type\' =>\'image\',
        \'post_status\' => \'inherit\',
        \'posts_per_page\' => -1,
        \'post_parent\' => $post->post_parent
    );
}

$query_images = new WP_Query( $query_images_args );
$images = array();
foreach ( $query_images->posts as $image) {
    $images[] = wp_get_attachment_image_src( $image->ID, \'large\');
}

foreach ( $images as $image) {
    if ( $image[1] >= 1024 )
        $large_images[] = $image[0];
}

if ( !empty($large_images) ):
这非常有效,只查询当前帖子或页面的图像。

但是,我还想让这段代码做一件事:

如果一个页面没有附加图像,并且是附加图像页面的“子页面”,我想查询“父页面”的图像。

再次强调:

父页->已附加图像子页->未附加图像->应查询父页的图像

这可以通过$post->post_parent

$query_images_args = array(
            \'post_type\' => \'attachment\',
            \'post_mime_type\' =>\'image\',
            \'post_status\' => \'inherit\',
            \'posts_per_page\' => -1,
            \'post_parent\' => $post->post_parent
        );
然而,我不知道如何区分这两种情况。

如果页面附有图像,我希望我的代码\'post_parent\' => $post->ID, 如果一个页面是一个子页面,并且没有附加图像,我希望代码是\'post_parent\' => $post->post_parent

有什么想法吗?

1 个回复
最合适的回答,由SO网友:Wyck 整理而成

您可以使用get_children 要检查它是否返回任何内容,如果没有返回,请获取父附件。

//loop stuff

//your $query_images_args

$attachments = get_children($query_images_args);

if ( empty($attachments) ) {

//go get parent attachments 

}else{

//loop through this post\'s attachments

}

结束

相关推荐

resize images not crop

正在寻找一种将上传的图像(wordpress上所有形式的图像上传)调整到精确尺寸的方法,但是not to crop. 我会悬赏回答这个问题,因为我相信这对很多人都有帮助。理想的解决方案必须是作为插件,并使用媒体设置页面(options-Media.php/Thumbnail,Medium和Large)上已经指定的图像尺寸我知道理想有时无法实现,所以最接近的答案将是公认的答案