WordPress的返回preg_replace-内容消失了

时间:2018-08-07 11:11:04

标签: php wordpress preg-replace

我已将此功能放在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中删除了该函数,但是内容仍然没有显示,为什么有任何想法?

1 个答案:

答案 0 :(得分:0)

尝试以下操作:<p>\s*(<a[^>]*>)?(<img[^>]+>)(<\/a>)?\s*<\/p>

它也适用于<a>标签内的图像。

Demo

说明:

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