Как прикрутить Landing Page к существующей странице сайта на WordPress
На конкретном примере сайта покажу как прикрутить Landing Page (посадочную страницу) к уже существующей странице сайта на WordPress, которую вы прокачивали ранее ссылочным. Т.е. по итогу URL страницы не изменится, при этом обойдемся без 301 редиректа.
Статья покажется на первый взгляд длинной, но это из-за обилия изображений, которые наглядно показывают что и с чем делать. Не пугайтесь.
На днях обратился клиент, у которого уже был готов лендинг и мне необходимо было только установить по определенному URL. Ранее страница была в стиле шаблона всего сайта, а должна быть в своем стиле.
В данном случае это статичная страница (Page). Однако у вас может быть и страница записей. По этой причине в статье расскажу как действовать в этих случаях.
Прикручиваем лендинг к статичной странице
Сам лендинг в рассматриваемом случае состоит из нескольких файлов.
Чтобы не засорять шаблон сайта лишними файлами, было решено папку с файлами хранить в /wp-content/
Статичный страницы WordPress предоставляют возможность выбирать шаблон оформления. Именно это и нужно в данном случае, чтобы сохранить URL страницы и подключить нужный лендинг.
По итогу можно выбирать для любой страницы (Page) свое оформление. На скриншоте ниже пример:
Сейчас аккурат расскажу как сделать такой шаблон с лендингом.
Для начала создаете файл page-1.php, который и будет шаблоном для страницы. Название может быть произвольное, главное чтобы не пересекалось с уже существующим файлом шаблона.
В page-1.php сразу в начале вставляем такой код:
Подобная запись позволит вывести название шаблона в админке (показывал на скриншоте выше). Название "Семантическое ядро" можете менять на произвольное. Это для удобства ориентации по шаблонам страниц. В данном случае делал для страницы про сем. ядро, поэтому так и назвал.
Далее в этот же файл page-1.php вам нужно скопировать все, что есть в файле index.php вашего лендинга. Именно в нем будет лежать лицевая часть вашего лендинга, которая уже потом может ссылаться на другие файлы (если их у вас много, как на примере).
Получившийся файл page-1.php необходимо закачать в папку с вашим шаблоном сайта, чтобы стал задействован в процессе. Делаем это.
На данный момент уже в админке вы увидите новый шаблон, однако он не будет выглядеть так как запланировано. Причина в том, что в index.php лендинга будут прописаны относительные пути до картинок, скриптов и прочего. Т.е. вот так примерно:
У нас же сейчас бывший файл index.php лендинга превратился в page-1.php и лежит в другом месте. Поэтому по всему файлу page-1.php нужно прописать правильный путь до папки с лендингом (в примере это папка Landing, которая лежит в папке /wp-content/). Делаем это по всему файлу и по итогу получится нечто подобное:
На примере видно, что я отсек название домена, т.к. браузер все поймет правильно и выдаст нужную информацию. Можете прописать полностью с доменом.
Если проставили путь до папки с лендингом везде по файлу page-1.php правильно, то теперь в админке можете смело выбирать шаблон страницы и все будет работать как нужно. Проверяйте.
Прикручиваем лендинг к странице записей
WordPress понимает иерархию файлов шаблона. Не буду сейчас грузить этой информацией и перейдем к делу. Кто хочет может погуглить про иерархию.
Необходимо открыть файл функций шаблона functions.php и сразу после <?php с новой строки вставим такое:
/* шаблон одиночной записи */
function mojwp_single($mojwp_template) {
global $wp_query, $post;
if(file_exists(TEMPLATEPATH . '/single-' . $post->ID . '.php')) {
return TEMPLATEPATH . '/single-' . $post->ID . '.php';
}
if(file_exists(TEMPLATEPATH . '/single.php')) {
return TEMPLATEPATH . '/single.php';
}
return $mojwp_template;
}
add_filter('single_template', 'mojwp_single');
Данный код позволит создавать отдельный шаблон выбранной вами записи. Мы включили приоритет загрузки файлов шаблона одиночной записи по ID вашей статьи.
У каждой записи есть свой уникальный ID. Наведите на кнопки в админке
и снизу браузера увидите нечто подобное
Цифра 4113 в данном случае и будет ID записи.
Теперь осталось создать в папке с шаблоном вашего сайта файл single-4113.php и разместить в нем код с файла лендинга index.php полностью, чтобы WordPress автоматически подгрузил шаблон для указанной по ID записи.
Т.е. для одиночной записи не нужно прописывать вручную название шаблона и потом выбирать. Достаточно разместить один раз представленный код в functions.php и потом создавать файлы вида single-N.php, где N - цифра ID записи.
Не забудьте так же прописать пути до файлов лендинга, как это делали на примере статичных страниц (чуть выше по статье).
Послесловие
Из этой статьи вы поняли как создавать отдельные шаблоны для сайта. Так же теперь вы можете смело заказывать дизайн и верстку шаблонов, чтобы прикрутить их к существующим прокачанным страницам. В количестве лендингов вы не ограничены, хоть к каждой странице делайте.
Вроде ничего не забыл. Если что спрашивайте в комментариях.