Wordpress媒体库自定义分类获取图像

时间:2016-12-30 15:36:23

标签: php wordpress

我在这里使用此代码使用自定义分类法从媒体库中获取图像。它获取图像网址很好,但我想获得图像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;
}

1 个答案:

答案 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()