以往开发wordpress主题或者插件时,遇到需要更改文章内部的图片相关的功能时候,通常是使用the_content
过滤钩子通过正则表达式进行获取图片进行修改实现的。
但是正则表达式比较复杂,掌握不好非常容易出现错误,现在官方给我们提供了一个新的过滤器wp_content_img_tag
,它能帮我们准确找到图片标签。
wp_content_img_tag参数
- string $filtered_image:完整的 img标签,其属性将替换源图像标签。
- string $context:附加上下文,例如当前过滤器名称或调用 this 的函数名称。
- int $attachment_id: 图片附件 ID。如果图像不是附件,则为 0。
过滤器必须返回一个字符串,然后将替换img传递给过滤器的标签。
图片加边框示例代码
function myplugin_img_tag_add_border_color( $filtered_image, $context, $attachment_id ) { $style = 'border-color: #cccccc;'; $filtered_image = str_replace( '<img ', '<img style="' . $style . '" ', $filtered_image ); return $filtered_image; } add_filter( 'wp_content_img_tag', 'myplugin_img_tag_add_border_color', 10, 3 );