修改媒体文件标记输出

时间:2017-04-25 作者:Ponte

我试图在wordpress中的媒体文件(带有指向其全尺寸链接的图像)前后添加一点html标记。

有没有人知道一种不需要使用插件就能做到这一点的简单方法?

如果图像确实使用了“链接到:媒体文件”选项,我希望在图像之前添加以下标记。

 <div class="ImageWrapper">
 <div class="ImageOverlayHBlog"></div>
没有什么特别的,但似乎让我头痛的是如何让它在有链接到更大版本的图像之前显示出来。

任何帮助或指导都将不胜感激!

1 个回复
最合适的回答,由SO网友:cjbj 整理而成

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;
  }

相关推荐

如何使用分类法获取图像(WP Media文件夹)

如何创建一个画廊页面,它是一个画廊的画廊-使用子画廊中的特定照片作为相册的封面?这就是我目前所拥有的。我在后端有一个使用WP Media folder构建的文件夹,名为master. 我想在图库页面中列出master 以及缩略图所属库的名称。这是我的。$galleries = get_terms( \'wpmf-gallery-category\', [ \'hide_empty\' => 0 ]); foreach ( $galleries as $gal )