WordPress 6.0 引入了一个新的过滤器 wp_content_img_tag
,允许调整HTML内容中的图像,最突出的是通过the_content
过滤器发布内容。
WordPress 5.5 最初引入了wp_filter_content_tags()
功能来修改 HTML 内容中的某些元素(主要是图像)。在 WordPress 6.0 版本之前,如果不复制函数wp_filter_content_tags()
中复杂的正则表达式逻辑,就不可能更改这些图像标签。这增加了复杂性和开销。新的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 );
该wp_filter_content_tags()
功能最初是为了促进对图像的延迟加载支持而引入的,此后已成为修改内容中的图像以实现各种性能增强的标准方法。新的wp_content_img_tag
过滤器通过允许插件开发人员添加他们自己的自定义项来扩展这些功能。
有关新过滤器的更多上下文,请参阅#55347。
来源:
https://www.wpdaxue.com/new-filter-to-modify-content-images-in-wordpress-6-0.html