如何删除包装<article> -tag?</article>

时间:2014-05-31 12:11:23

标签: php regex wordpress

我想删除包含在我的代码中的所有EMPTY文章标签,例如:

 <article>
 </article>

但它也适用于:

 <article></article>

 <article> </article>

我现在有这个(在我的WordPress主题的function.php中),但它不起作用:

function remove_empty_articles($content) {
    $content = preg_replace('#<article>(.+)</article>#', '', $content);
    return $content;
}
add_filter('the_content', 'remove_empty_articles');

如何解决?

1 个答案:

答案 0 :(得分:0)

请改用此模式:

#<article>\s*</article>#
带有\s*

表示零个或多个白色字符。不需要捕获组。

您使用的模式是错误的,原因有两个:

  • .匹配除换行符之外的任何字符(这将删除所有一行文章标签,而不会找到多行上的文章标签。)
  • +量词意味着1次或更多次,你可以找到它<article></article>