我找到了一个解决方案,在创建一个只适用于一个图像的帖子时,从图像中删除到p标签。
对于它工作的图像,我查看了firebug,如下所示:
<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;
}
我只是希望图像是我的帖子的全宽度和内容使用段落标签,因为我说它适用于我的第一个图像,但不适用任何其他!
谢谢
当你通过内容过滤器运行它时,Wordpress会添加<p>
标签。如果您不想要任何额外的标记,那么就不要通过任何过滤器运行它,或者在过滤器文档中查找您认为可以使用的过滤器。
我认为你的解决方案是好的,但我认为你的正则表达式只需要第一次出现。尝试使用preg_match_all
为您的正则表达式。