我正在尝试使用get_image_tag()
函数更改图像的html输出,如下所示:
add_filter(\'get_image_tag\', \'kh_image_attachment\', 10, 5);
function kh_image_attachment($html, $id, $alt, $title, $align) {
$html = \'<img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="\' . esc_attr($img_src) . \'" id="\'.esc_attr($id).\'" alt="\' . esc_attr($alt) . \'" title="\'.esc_attr($title).\'" class="\'.$class.\'" onload=lzld(this) onerror=lzld(this) />\';
return $html;
}
不幸的是
src
属性仍然为空(class属性也是空的,但我对此毫不在意)。我一辈子都不知道为什么。你能帮帮我吗?
非常感谢。
最合适的回答,由SO网友:Krimo 整理而成
解决方案:
我需要使用
wp_get_attachment_image_src
作用
add_filter(\'get_image_tag\', \'kh_image_attachment\', 10, 5);
function kh_image_attachment($html, $id, $alt, $title, $align) {
$image_source = wp_get_attachment_image_src( $id, \'full\' );
$html = \'<img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="\'.$image_source[0].\'" id="kh-image-attachment-\'.esc_attr($id).\'" alt="\' . esc_attr($alt) . \'" title="\'.esc_attr($title).\'" onload=lzld(this) onerror=lzld(this) />\';
return $html;
}
SO网友:janw
尝试以下操作:
您使用的过滤器包含多个参数,add_filter
默认情况下,将提供1个参数,您使用4个(共6个),在我的示例中,我为您的函数提供了所有6个参数。如果要使用4,请将函数改回并更改add_filter
.
<?php add_filter(\'get_image_tag\', \'kh_image_attachment\', 10/*prio*/, 6/*number of arguments*/);
function kh_image_attachment($html, $id, $alt, $title, $align, $size)
{
//your code
}
应该有用吧,问题?问