В редакторе WordPress присутствует функция автоматического форматирования текста при размещении/редактировании постов. В ее обязанности входит добавление кавычек, отступов, переносов строк и пр. символов форматирования.
Очень часто этот функционал доставляет неудобства, особенно когда нужно создать страницу со сложным форматированием. Заметим, что автоформатирование продолжает работать даже после перехода в режим Текст, расставляя теги <p> и <br>, которые в редакторе нигде не отображаются и их просто невозможно удалить вручную.
Как в WordPress отключить автоматическое форматирование?
Отключить автоформатирование в редакторе WordPress можно как частично, так и полностью. Рассмотрим все доступные варианты.
Отметим, что все последующие шаги предусматривают редактирование основного конфигурационного файла активной WordPress-темы functions.php.
Если вы не знаете, как редактировать functions.php, то в этом случае Вам поможет плагин ProFunctions.
Отключение <p> и <br>
В редакторе WordPress по умолчанию абзацы заключаются в теги <p></p>, после чего происходит перенос на новую строку (<br />).
Для отключения следует добавить следующие строки кода:
// отключение <p> и <br> в записях remove_filter( 'the_content', 'wpautop' ); // отключение <p> и <br> в анонсе remove_filter( 'the_excerpt', 'wpautop' ); // отключение <p> и <br> в комментариях remove_filter( 'comment_text', 'wpautop' );
Отключение <p> и <br> на отдельных страницах
Чтобы отключить автоматическую вставку <p> и <br> на отдельной странице, нужно в ее шаблоне перед выводом контента поста (the_content()) добавить специальный фильтр:
// отключение <p> и <br> на отдельной странице remove_filter( 'the_content', 'wpautop' );
Отключение спецсимволов
К спецсимволам относятся: кавычки, двойное тире, знак торговой марки, знак дюйма, троеточие и т.п. Для их отключения в редакторе WordPress применяется следующий код:
// отключение спецсимволов в записях remove_filter( 'the_content', 'wptexturize' ); // отключение спецсимволов в анонсе remove_filter( 'the_excerpt', 'wptexturize' ); // отключение спецсимволов в комментариях remove_filter( 'comment_text', 'wptexturize' );
Отключение заглавной буквы Р
// отключение заглавной буквы Р в заголовках remove_filter( 'the_title', 'capital_P_dangit', 11 ); // отключение заглавной буквы Р в записях remove_filter( 'the_content', 'capital_P_dangit', 11 ); // отключение заглавной буквы Р в анонсе remove_filter( 'the_excerpt', 'capital_P_dangit', 11 ); // отключение заглавной буквы Р в комментариях remove_filter( 'comment_text', 'capital_P_dangit', 31 );
Частичное отключение автоформатирования
Иногда бывает нужно отключить автоматическое форматирование для определенной части текста. Для этого первым делом в файл functions.php нужно добавить строки кода:
function wpschool_formatter( $content ) { $new_content = ''; $pattern_full = '{(\[raw\].*?\[/raw\])}is'; $pattern_contents = '{\[raw\](.*?)\[/raw\]}is'; $pieces = preg_split( $pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE ); foreach ( $pieces as $piece ) { if ( preg_match( $pattern_contents, $piece, $matches ) ) { $new_content .= $matches[1]; } else { $new_content .= wptexturize( wpautop( $piece ) ); } } return $new_content; } remove_filter( 'the_content', 'wpautop' ); remove_filter( 'the_content', 'wptexturize' ); add_filter( 'the_content', 'wpschool_formatter', 99 );
После этого можно использовать в записях шорткод [raw], с помощью которого можно выделять текст, на который не будет распространяться автоматическое форматирование. Например:
[raw]Текст без автоформатирования.[/raw]
Нажмите, пожалуйста, на одну из кнопок, чтобы узнать понравилась статья или нет.
Огромное спасибо! Выручили!!!
Работает