Создание Landing Page в WordPress. Отключение функции wpautop()
Краткая инструкция, если нужно создать Landing Page (LP) или любую другую нестандартную страницу WordPress:
- копируем существующую страницу установленной темы page.php в новый файл, например, landing.php;
- вносим нужные нам изменения в файле landing.php:
– добавляем название шаблона страницы, который позже будем выбирать в админке WordPress (пример на скриншоте):/* Template Name: Landing */
В данном случае Landing – название шаблона страницы
– предлагаем сразу добавить в шаблон свой div c соответствующим классом или id (например, <div class=”land”>; ), внутри которого будет размещён цикл The Loop, который выводит содержимое поста. Типичная конструкция цикла:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <!-- тут формируется вывод постов с их функциями, например, the_title() --> <?php endwhile; ?> <?php endif; ?>
Это удобно, поскольку Вы всегда можете настроить индивидуальный стиль CSS для этого div.
- удаляем ненужные нам функции вывода автора, хлебных крошек, тэгов, категорий, прочих данных, которые портят дизайн нашего Landing Page.
- добавляем линк на нужный для нашей Landing Page файл стилей, например,
<link type="text/css" rel="stylesheet" href="https://softsprint.net/landing/landing.css" />
- создаём новую страницу в админке WordPress, выбираем шаблон страницы Landing (скриншот выше) и добавляем в неё заранее свёрстанный код нашей Landing Page в режиме «текст»;
- на данном этапе могут возникнуть проблемы с автоформатированием WordPress и из-за этого дизайн Вашей страницы «поплывёт». За автоформатирование отвечает врождённая функция wpautop(), которая доставляет в Ваш код теги <p> </p> вместо двойного переноса строки и <br/> – вместо простого переноса строки. В результате внешний вид Вашей вёрстки круто меняется благодаря лишним строкам и переносам. Если потребуется отключить автоформатирование у контента поста the_content или цитаты the_excerpt, то в functions.php добавляем это:
remove_filter( 'the_content', 'wpautop' ); remove_filter( 'the_excerpt', 'wpautop' );
При этом автоформатирование отключится на всех страницах Вашего сайта… их дизайн может также «поплыть», поэтому юзайте плагин (например, Toggle wpautop), который позволит отключить фильтр именно для Вашей Landing Page.
P.S. Для редактирования страниц .php удобно применять Notepad++ с сохранением в кодировке UTF-8 без BOM.