我为所有附件设置了自定义分类location
,并尝试使用location == background
列出所有图像:
foreach(get_posts(array('post_type' => 'attachment')) as $image) {
foreach(wp_get_post_terms($image->ID, 'location') as $term) {
if ($term->slug == 'background') echo wp_get_attachment_image($image->ID);
}
}
我怎么能以更简单的方式做到这一点?没有额外的循环和查询。 谢谢。
答案 0 :(得分:2)
你可以尝试这样的事情(使用WP_Query):
$args = array(
'post_type' => 'attachment',
'post_status' => 'inherit',
'post_mime_type' => 'image/jpeg,image/gif,image/jpg,image/png',
'tax_query' => array(
array(
'taxonomy' => 'location',
'field' => 'slug',
'terms' => 'background'
)
)
);
$query = new WP_Query($args);
if($query->have_posts()) :
while ($query->have_posts()) : $query->the_post();
//...
endwhile;
endif;