在foreach循环中使用媒体ID获取WordPress图像

时间:2015-04-06 20:35:37

标签: php jquery wordpress image

我已经看过如何在媒体库中获取所有图像,反之亦然,从图库中获取图像,特色缩略图但尚未找到基于图像ID的方式。

我正在创建一个自定义图库短代码,并且有一个名为ids的属性,就像wordpress的默认内置图库一样,它会根据id输出图像。

我也查看了WordPress文档并获取图片网址,我们需要wp_attachment_src函数。

我有短代码:

//他们输入的ID是图片ID而不是图片ID或特色缩略图来自媒体库的特定图片ID

[some-gallery ids =“8,4,23,9”]

add_shortcode('some-gallery', 'example_shortcode');
function example_shortcode($atts){
   extract(shortcode_atts(array(
      'ids' => '8,6,9', // 8 is just a default placement
   ), $atts));


$arr = explode(",",$ids); //convert list of ids as an array
echo "<div id=\"container\">\n";
foreach($arr as $id) {
$img = wp_get_attachment_image_src($id); //get images using image id not working!!
    echo "<div>$img</div>\n"; //result is the word Array
} 
echo "</div>\n";
}

3 个答案:

答案 0 :(得分:0)

你试过wp_get_attachment_image?

<?php wp_get_attachment_image( $attachment_id, $size, $icon, $attr ); ?>

wp doc

答案 1 :(得分:0)

使用wp_get_attachment_image_src获取图片的网址。

<?php wp_get_attachment_image_src( $attachment_id, $size, $icon ); ?>

它返回一个有序数组,其值对应于(0)url,(1)width,(2)height和(3)图像附件的比例(或表示任何附件的图标)。

这是一个例子

$image = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'product_image_size');

答案 2 :(得分:0)

我发现如果我按照它的作用分解图像结果。

$arr= explode(",",$ids); //prints an array of numbers

echo "<div id=\"container\">\n";
foreach($arr as $id) {
  $img = wp_get_attachment_image_src($id, medium);
  echo "<div class=\"$class\"><img src=\"$img[0]\" width=\"$img[1]\" height=\"$img[2]\"></div>\n";
}
  echo "</div>\n";