0

我找到了一种解决方案,可以在创建帖子时从图像中删除 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;
}

我只希望图像是我的帖子的全宽和使用段落标签的内容,正如我所说的那样,它适用于我的第一张图片,但不适用于其他任何图片!

谢谢

4

1 回答 1

0

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

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

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

于 2013-02-27T12:13:33.657 回答