我在这里使用此代码使用自定义分类法从媒体库中获取图像。它获取图像网址很好,但我想获得图像ID和标题。我怎么做? 这是我到目前为止所做的。
function get_images_from_media_library($cat) {
$args = array(
'post_type' => 'attachment',
'post_mime_type' =>'image',
'post_status' => 'inherit',
'posts_per_page' => 6,
'orderby' => 'rand',
'tax_query' => array(
array(
'taxonomy' => 'gallery-category',
'field' => 'slug',
'terms' => $cat
)
)
);
$query_images = new WP_Query( $args );
$images = array();
foreach ( $query_images->posts as $image) {
$images[]= $image->guid;
echo $image->ID; // Returns image ID, but I need it in display_images_from_media_library function
}
return $images;
}
function display_images_from_media_library($cat) {
$imgs = get_images_from_media_library($cat);
foreach($imgs as $img) {
$html .= '<img src="' . $img . '" alt="">';
}
return $html;
}
答案 0 :(得分:0)
get_images_from_media_library()
会返回一系列图片网址,因此display_images_from_media_library()
永远无法访问除这些网址之外的任何内容。如果您希望访问ID和标题,则需要进行一些更新。
在get_images_from_media_library()
内,更改此内容:
$images = array();
foreach ( $query_images->posts as $image) {
$images[]= $image->guid;
echo $image->ID; // Returns image ID, but I need it in display_images_from_media_library function
}
return $images;
对此:
return $query_images->posts;
原始代码循环显示图像并将其URL添加到新数组中。在这里,我们将以原始形式返回图像。
然后我们需要更新使用这些图像的功能。
改变这个:
$html .= '<img src="' . $img . '" alt="">';
对此:
$html .= '<img src="' . $img->guid . '" alt="">';
在我的回答中,我修改了您编写的代码,以达到预期的结果。但我会建议您改变首先检索图像的方式。 WP_Query
并不是处理它的最有效方式。请考虑使用get_posts()
。