我已将此功能放在functions.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');
整个页面的内容都消失了之后,我已经从functions.php中删除了该函数,但是内容仍然没有显示,为什么有任何想法?
答案 0 :(得分:0)
尝试以下操作:<p>\s*(<a[^>]*>)?(<img[^>]+>)(<\/a>)?\s*<\/p>
它也适用于<a>
标签内的图像。
说明:
<p> # p tag
\s* # 0 or more spaces
(<a[^>]*>)? # optional <a> tag: (first capturing group)
# it matches <a and then any non '>' character
# repeated 0 or more times and then a '>'
# (second capturing group)
(<img[^>]+>) # image tag
(<\/a>)? # optional closing </a> (third capturing group)
\s*
<\/p>