Как удалить все HTML-теги из get_the_content()?

7 апр. 2013 г., 00:58:05
Просмотры: 50.5K
Голосов: 5

я хочу удалить все html теги из контента, такие как <p>, <br>, <img>, <a> я пробовал strip_tags() также пробовал

$content = get_the_content();
$content = apply_filters('the_content', $content);

но для меня это не работает. есть ли надежное решение??

0
Все ответы на вопрос 3
1
14

Чтобы продолжить ответ @s_ha_dum, я думаю, вам нужно следующее.

$content = get_the_content(); 
echo wp_filter_nohtml_kses( $content ); // или strip_tags
7 апр. 2013 г. 01:15:48
Комментарии

Разве вам все еще не нужен фильтр контента? То есть что-то вроде wp_filter_nohtml_kses( apply_filters( 'the_content', $content ) )?

Jay Jay
9 мая 2020 г. 22:13:48
2

Функция WordPress, которую я обычно использую, это wp_filter_nohtml_kses. Она должна удалять весь HTML, но нужно быть осторожным, чтобы не вернуть HTML обратно, применяя фильтры the_content к строке без HTML.

Я не уверен, почему strip_tags не сработала, но подозреваю, что вы делаете что-то ещё в другом коде (опубликованном или нет), и это что-то отменяет удаление тегов или возвращает некоторые теги обратно. В основном я так думаю, потому что вы пробовали...

$content = get_the_content();
$content = apply_filters('the_content', $content);

... и, судя по всему, ожидали, что теги будут удалены?

7 апр. 2013 г. 01:13:00
Комментарии

Да! Ты был прав. strip_tags() не работает из-за $content = get_the_content(); $content = apply_filters('the_content', $content); Спасибо, друг.

Muhammad Furqan Muhammad Furqan
7 апр. 2013 г. 01:18:37

Теперь оба решения работают для меня: wp_filter_nohtml_kses() и strip_tags() :)

Muhammad Furqan Muhammad Furqan
7 апр. 2013 г. 01:21:23
0

Это удаляет как <htmltags>, так и <!-- комментарии -->:

echo wp_strip_all_tags( get_the_content() );

wp_filter_nohtml_kses() не помог избавиться от комментариев.

см. здесь

18 мар. 2020 г. 19:14:51