У меня есть несколько постов, в которых (в фактическом тексте поста на бэкэнде) есть несколько ошибочных <strong> </strong>
записей.Я пытаюсь отфильтровать их перед отображением в виде HTML.(Обратите внимание, что у меня также есть правильные теги, например <strong>This Is a Title</strong>
, которые мне нужно сохранить).
Я создал фильтр, но не могу заставить полосу работать:
add_filter( 'the_content', 'filter_test');
function filter_test($content){
global $post;
$post_slug = $post->post_name;
if (get_post_type() == "post" && $post_slug != "allposts") {
$content = preg_replace("/<strong>\s+<\/strong>/",'',$content); // THIS LINE
$content = preg_replace("/ |^\s*$/",'',$content);
return $content;
}
return $content;
}
По-прежнему остается в «пустых» тегах <strong>
.Насколько я могу судить, у меня есть правильный шаблон регулярных выражений, <strong>\s+<\/strong>
(и добавил /
вокруг этого, так как это похоже на путь PHP).
Как я могу удалить /отфильтровать пустых тегов (<strong> </strong>
), но оставить «заполненных» (<strong>Words here</strong>
)?
Редактировать: Снимок некоторого HTML-кода при визуализации страницы:
<p>USA is a country</p>
<p><strong> </strong></p>
<p><strong>then there are some words here.</strong></p>
<p><strong> </strong></p>
Я пытаюсь удалить вторую и четвертую строку в этом.Теперь я вижу, что технически я хочу удалить пустой <p></p>
, но ожидаемое решение подойдет для любого тега HTML.