检查WP_QUERY中的特色图像

时间:2011-08-12 作者:Mild Fuzz

在初始化WP\\U查询对象时,是否有方法按特征图像过滤帖子?

实例

$my_query = WP_Query(array("has_thumbnail"=>true));
或者更理想地说

$my_query = WP_Query(array("has_thumbnail_size"=>"custom_size"));

2 个回复
SO网友:Rarst

技术特征图像是具有名称的自定义字段_thumbnail_id 它保存附件ID。因此您可以轻松地使用以下内容进行查询:

$args = array(
    \'meta_query\' => array(
        array(
            \'key\' => \'_thumbnail_id\',
        )
    )
 );
$query = new WP_Query( $args );
另一方面,大小是附件的属性,而不是帖子本身。您需要遍历附件并获取它们的大小(如果我没记错的话,应该在wp_get_attachment_metadata()).

SO网友:yuvilio

这里有一种在查询之后过滤帖子的替代方法,使用wp_get_attachment_thumb_url() 返回一个空字符串,以确定帖子是否有缩略图(特色图像)。

//get all the posts however your query does it. simple example when there aren\'t a lot: 
$args = array("nopaging" => true);
$posts = (new WP_Query($args))->posts;

//filter the posts array by looking up the thumb_url and seeing if it\'s empty
$posts_without_thumbnails = array_filter($posts,  function($post){
  $post_thumbnail_id = get_post_thumbnail_id( $post->ID );
  return ( wp_get_attachment_thumb_url( $post_thumbnail_id ) == "");
} );
如果您需要在查询过程中执行此操作,您可能可以对其进行wordpress筛选或操作,或者拦截query_posts.

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post