WordPress有一个filter image_send_to_editor
它允许您修改由媒体编辑器生成的html。用法:
add_filter (\'image_send_to_editor\', \'wpse264886_filter_image\', 10, 8);
function wpse264886_filter_image ($html, $id, $caption, $title, $align, $url, $size, $alt) {
$html = \'<span> ... </span>\' . $html;
return $html;
}
这将插入
spans
然而,并非只有在图像周围有链接时,才始终如此。如果你想要后者,你必须
filter the content
通过执行搜索和替换,查找图像上的所有链接,然后插入html。我对regex不是很好,也无法测试它,但它会是这样的:
add_filter (\'the_content\', \'wpse264886_content_insert_html\', 10, 1);
function wpse264886_content_insert_html ($content) {
$html = \'<div> ... </div>\'
$content = preg_replace(\'/(<a.*?)><img/\', \'$1>\' . $html . \'<img\', $content);
return $content;
}