我正在创建一个自定义图片库短代码,用于在灯箱中打开图片。输出图像的行是:
$image_output = "<a href='" . wp_get_attachment_url( $id ) . "' data-toggle='lightbox' data-gallery='$selector' data-footer='$attachment->post_excerpt'> " . wp_get_attachment_image($id, $atts['size'], false, $attr ) . "</a>";
除了链接到原始(和全尺寸)图像之外,一切都很有效。我希望它改为链接到自定义图像大小。我使用wp_get_attachment_url( $id )
尝试wp_get_attachment_image_src( $id, 'gallery-thumbnail', false )
。
然而,我没有获得所需的图片网址,而是获得了Array
。我有什么想法,我做错了什么?应该使用其他东西吗?
答案 0 :(得分:1)
wp_get_attachment_image_src()返回一个数组(url,width,height)所以使用
wp_get_attachment_image_src(...)[0]
答案 1 :(得分:1)
wp_get_attachment_image_src
将post_id和required大小作为参数,并返回一个包含以下内容的数组:
[0] = url
[1] =宽度
[2] =身高
[3] = is_intermediate(即它是重新调整大小的图像还是原始图像)
因此,要获取名为gallery-thumbnail
的自定义尺寸的网址,您需要执行以下操作:
$img_attrib = wp_get_attachment_image_src( $id, 'gallery-thumbnail');
if ($img_attrib)
$url = $img_attrib[0];
$image_output = "<a href='".$url."' [...rest of code...] </a>";
我已经一步一步地完成了这项工作,因此您可以看到发生了什么,但您当然可以将其缩短如下 - 但是如果图像无法实现,则链接会断开被发现。
<a href='".wp_get_attachment_image_src( $id, 'gallery-thumbnail')[0]."' [...rest of code...] </a>"
注意:这假设您已使用add_image_size
在functions.php中定义了自定义大小,并重新生成了缩略图,以便创建所有图像的版本。