从图像功能查询中删除'p'标签v

时间:2013-02-27 12:04:29

标签: php image wordpress

我找到了一种解决方案,可以在创建一个仅适用于一个图像的帖子时从图像中删除p标签。

对于它适用的图像,我看了萤火虫,这就是显示的内容:

<div class="entry-content">
<a href="http://localhost:8888/wordpress/wp-content/uploads/2013/02/img-1.png">
<img class="alignnone size-full wp-image-50" width="520" height="320" src="http://localhost:8888/wordpress/wp-content/uploads/2013/02/img-1.png" alt="img-1">
</a>

依旧......太棒了!

但是当我将另一张图片上传到另一个帖子时,会发生这种情况:

<p>
<img class="alignnone size-full wp-image-50" width="520" height="320" src="http://localhost:8888/wordpress/wp-content/uploads/2013/02/img-1.png" alt="img-1">
<br>
Lorem ipsum dolo....
</p>

这是我在我的函数文件中使用的函数:

<?php
function filter_ptags_on_images($content){
    return preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
}
add_filter('the_content', 'filter_ptags_on_images');
?>

所以有没有办法再添加另一个“返回行”,其功能是删除p标签

,因为它只在

时才起作用。 ?我希望这是有道理的!如果它有助于这是我的css我的图像:

width:100%;
height:auto;
min-width:320px;
}

我只想让图片成为我帖子的全部宽度以及使用段落标签的内容,因为我说它适用于我的第一张图片但不适用于其他任何图片!

由于

1 个答案:

答案 0 :(得分:0)

当您通过内容过滤器运行时,Wordpress会在其他标签中添加<p>个标签。如果您不想要任何额外的标签,只是不要通过任何过滤器运行它,或者在过滤器文档中查找您认为可以使用的过滤器。

我认为你的解决方案很好,但我认为你的正则表达式只是第一次出现。尝试使用preg_match_all作为正则表达式。

http://codex.wordpress.org/Plugin_API/Filter_Reference