WordPress的媒体库自定义分类获取图像
问题描述:
我在这里使用此代码来使用自定义分类从媒体库中获取图像。它获得的图像网址很好,但我想获得图像ID和标题。我怎么做? 这是我到目前为止。WordPress的媒体库自定义分类获取图像
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;
}
答
get_images_from_media_library()
返回图像的URL的阵列因此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()
。