如何在wordpress query_post函数中排除没有图像的帖子?

时间:2011-11-16 22:05:19

标签: php mysql wordpress

下面的查询在我的网站上运行一个特色轮播。我希望旋转木马只显示包含图像的帖子。我到处搜索,找不到解决方案。请帮忙!

query_posts(array('post_type' => 'ad_listing', 'post_status' => 'publish', 'orderby' => 'rand'));

2 个答案:

答案 0 :(得分:1)

我在开发自己的主题时遇到了同样的事情。 这就是我解决它的方式。

首先在functions.php中添加特色图像功能。

if (function_exists('add_theme_support')) {
    add_theme_support('post-thumbnails');
}

这允许您为每个帖子选择特色图像。

使用特色图像功能,您可以使用以下功能检测帖子是否具有特色图像...以循环形式:

$args = array(
'post_type' => 'ad_listing'
);
query_posts($args);
if ( have_posts() ) : 
    while ( have_posts() ) : the_post();
        if ( has_post_thumbnail() ) { //For featured images
            //For post images/attachments
                ob_start();
                the_id(); 
                $postID = ob_get_clean(); 
                $args = array(
                    'numberposts' => 1,
                    'order'=> 'ASC',
                    'post_mime_type' => 'image',
                    'post_parent' => $postID,
                    'post_status' => null,
                    'post_type' => 'attachment'
                );
                $images =& get_children($args);

                if ( empty($images) ) {
                    //What to do without images
                }
                else {
                    //What to do with images
                }
        }
    endwhile;
else :
    //What happens when no posts are found
endif;

希望这有帮助。

答案 1 :(得分:0)

您将无法使用query_posts执行此操作。你必须在循环中完成它。

查看get_children(),尤其是Show the first image associated with the post的示例。