WordPress 6.0 引入了一個新的過濾器 wp_content_img_tag,允許調(diào)整HTML內(nèi)容中的圖像,最突出的是通過the_content過濾器發(fā)布內(nèi)容。
WordPress 5.5 最初引入了wp_filter_content_tags()功能來修改 HTML 內(nèi)容中的某些元素(主要是圖像)。在 WordPress 6.0 版本之前,如果不復(fù)制函數(shù)wp_filter_content_tags()中復(fù)雜的正則表達式邏輯,就不可能更改這些圖像標(biāo)簽。這增加了復(fù)雜性和開銷。新的wp_content_img_tag過濾器解決了這個問題。
如何使用過濾器
新的wp_content_img_tag過濾器傳遞以下參數(shù):
- string?
$filtered_image:完整的 img標(biāo)簽,其屬性將替換源圖像標(biāo)簽。 - string?
$context:附加上下文,例如當(dāng)前過濾器名稱或調(diào)用 this 的函數(shù)名稱。 - int?
$attachment_id: 圖片附件 ID。如果圖像不是附件,則為 0。
過濾器必須返回一個字符串,然后將替換img傳遞給過濾器的標(biāo)簽。
示例
這是一個示例,其中使用新過濾器為內(nèi)容中的每個圖像標(biāo)簽添加邊框顏色樣式屬性。
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()功能最初是為了促進對圖像的延遲加載支持而引入的,此后已成為修改內(nèi)容中的圖像以實現(xiàn)各種性能增強的標(biāo)準(zhǔn)方法。新的wp_content_img_tag過濾器通過允許插件開發(fā)人員添加他們自己的自定義項來擴展這些功能。
有關(guān)新過濾器的更多上下文,請參閱#55347。




