Intereting Posts
Разрыв выхода CPT на две колонки Изображение не отображается с использованием пользовательской функции и get_post_meta Могу ли я установить тему только на одном сайте сетевой установки на нескольких сайтах? Пользовательские таксономии делают WP очень медленным – способ исправить? Большинство просмотров темы за последние 24 часа Как переопределить функцию, когда она отсутствует в functions.php Как я могу получить плагин Jetpack Image для открытия ссылок в новом окне? Разрешить нефильтрованный HTML для не зарегистрированных пользователей при сохранении сообщения Включайте пользователя в пользовательский цикл на основе роли пользователя Сохранение данных для разных пользовательских сообщений несколько категорий и проблема с панировочными сухарями Как добавить фильтр-фильтр в медиа-библиотеку? Как изменить формат сообщений на hompage? WordPress постоянно запрашивает страницы от себя Высокие CPU и память?

разделите только те или иные теги (например, <p>), но сохраните другие теги (например, <br/>)

Я знаю, что легко отключить WordPress от добавления тегов p и br :

 remove_filter( 'the_content', 'wpautop' ); remove_filter( 'the_excerpt', 'wpautop' ); 

но я хочу, чтобы WordPress продолжал добавлять, где есть разрыв строки. Я использую только текстовый редактор, визуальный редактор отключен. Он работал нормально до последнего обновления WordPress 4.7 – теперь он добавляет некоторые закрывающие теги p , не открывая их, как </p> .

даже попробовал этот плагин, но он также отключает также теги br.

Любой способ просто отключить теги p не br теги в постконтент? Я не могу найти что-либо в Интернете, которое говорит что-то о решении.

Лучше никогда не отключать эти действия (как вы говорите). Вместо этого add_filter('the_content', 'MyFilter', 88 ); и создать такую ​​функцию:

 function MyFilter($content){ $tags = array( 'p', 'span'); /////////////////////////////////////////////////// ///////// HERE INSERT ANY OF BELOW CODE ////////// /////////////////////////////////////////////////// return $content; } 

======== МЕТОД 1 =========

 $content= preg_replace( '#<(' . implode( '|', $tags) . ')(.*|)?>#si', '', $content); $content= preg_replace( '#<\/(' . implode( '|', $tags) . ')>#si', '', $content); 

======== МЕТОД 2 =========

 $content = strip_tags($content,'<br><ul><li><a><b><h1><h2>'); //this is a bit harder, because you have to list inside that all tags you want to keep... 

======== МЕТОД 3 ======

 foreach ($tags as $tag) { $content= preg_replace('#<\s*' . $tag . '[^>]*>.*?<\s*/\s*'. $tag . '>#msi', '', $content); } 

======== МЕТОД 4 =========

Объект DOM (предпочтительный): https://stackoverflow.com/a/31380542/2377343

Фильтр «the_content» используется для фильтрации содержимого сообщения, в котором функция фильтра в your_prefix_ptagfix заставляет находить теги <p> до и после тегов открытия коротких кодов.

Добавить Следующий код в файл функций и сообщите мне, если это поможет.

 add_action( 'after_setup_theme', 'your_prefix_theme_setup' ); function your_prefix_theme_setup(){ add_filter( 'the_content', 'your_prefix_ptagfix' ); } function your_prefix_ptagfix($content){ $array = array ( '<p>[' => '[', ']</p>' => ']', ); $content = strtr($content, $array); return $content; }