如何查询有新上传图片的帖子?

时间:2012-09-24 作者:Just Thomas Misund

我有一个自定义的事件帖子类型。每次活动后几天,有时会上传照片并将其附在活动上。

我想在我的网站上的某个地方突出显示这些图片库,并将它们显示在标题“最近更改的图片库”下。

如何查询具有3个或更多图像附件的“event”类型的帖子,并按最新附件的上载或发布时间排序结果?

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

这应该能帮到你。

如果在函数中调用它,当然需要确保$wpdb 是全球性的。

$required_number_of_attatchments = 3;

$posts = $wpdb->get_col( 
    $wpdb->prepare( 
        "SELECT posts.ID
            FROM %s AS posts
            INNER JOIN (
                SELECT MAX(post_modified) AS modified, post_parent
                FROM %s
                WHERE post_type = \'attachment\'
                AND post_parent > 0
                GROUP BY post_parent
                HAVING COUNT(ID) > %d
            ) AS attachments
            ON posts.ID = attachments.post_parent
            WHERE posts.post_type = \'event\'
            ORDER BY attachments.modified DESC",
        $wpdb->posts,
        $wpdb->posts,
        $required_number_of_attatchments
    )
);

if ( $posts ) {
    foreach ($posts as $post_id) {
        $post = get_post( $post_id );
        setup_postdata( $post );

        // Do your thing.

    }
}

结束