Создаем шаблон для отдельных записей в блоге

Представим ситуацию, что у нужно вывести разные записи с разным внешним видом. К примеру в одну добавить рекламный баннер, в другой убрать все посторонние виджеты и оставить только текст статьи.
Что для этого нужно сделать, я вам сейчас расскажу. Приготовились, слушаем!
Начнем с небольшой теории по WordPress. В папке с темой вашего сайта (а они располагаются по адресу wp-contetn/themes) лежит файлик под названием single.php, который отвечает за публикацию всех записей блога. Чтобы внести изменения в структуру статьи, нам нужно ее вывести с помощью другого файла, в котором будут учтены все задачи.
Для этого нам нужно в копию файла single.php внести только изменения для конкретной записи, например добавить рекламный баннер или убрать код для вывода ненужных виджетов. Таким образом мы создадим отдельный шаблон для какой-то конкретной записи.
Решить такую задачу можно двумя путями, давайте рассмотрим оба.
Способ 1 – используем плагин Custom Post Template
1) Установим плагин
[wp-pic type=»plugin» slug=»custom-post-template» layout=»large» ]
2) В папке wp-content/themes/«название темы» делаем копию single.php. Эту копию называем в соответствии с название новой темы, например в нашем примере clubwp.php
3) Меняем новый шаблон на свое усмотрение – добавляем, убираем и т.д. Самое главное в новом шаблоне в начале файла вставить такой код
[php]
<?php /* TemplateNamePosts: clubwp */ ?>
[/php]
На рисунке можно увидеть как это будет выглядеть.

Новый шаблон создан. Для его использования в работе, при создании новой записи необходимо выбрать новый шаблон (см. рисунок)

Таких шаблонов можно наплодить нужное количество, путем создания новых файлы из single.php. Главное не забывать в тексте шаблона изменять имя в поле «TemplateNamePosts».
Способ 2 – вносим изменения в код functions.php
1) В папке wp-content/themes/«название темы» находим файл functions.php, открываем его и вносим изменения (предварительно сделав резервную копию) в самое начало:
[php]
/*Вычисление ID записи*/
function single($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 $template;
}
add_filter(‘single_template’, ‘single’);
[/php]
2) При создании новой записи в WPмы можем узнать ее ID в адресной строке браузера – смотрим рисунок ниже.
Для нашего случая это 1455.
3) Скопируем файла single.php с новым названием single-1455.php и отредактируем его соответственно наших пожеланий.
4) Теперь запись можно опубликовать.
Из-за изменений в коде файла functions статья будет выведена шаблоном single-1455.php
Краткие выводы
Как определить какой из способов лучше? Если вам нужен новый шаблон только для 2-3 записей, то думаю можно применить заплатку из второго способа. А если число таких записей будет расти, то тут думаю логичнее будет использовать плагин, для которого написав 2-3 шаблона вы не будете создавать 100-200 файлов с каждым новым ID записи.
Создание шаблона страницы с помощью плагина
Все очень похоже на создание шаблона для записи. В той же папке с темой, находим page.php и создаем копию с новым названием, например clubwp_page.php.
Вносимм изменения в файл шаблона, не забывая добавить в начало код:
[php]
<?php /* Template Name: clubwp_page */ ?> [/php]
После этого страницу можно публиковать, выбрав при этом справа на панели новый шаблон. Смотрим рисунок.

Вот такие маленькие, но очень полезные мелочи мы сегодня обсудили. Надеюсь это облегчит ваши трудовые веб-будни.
Напишите ответ
Для отправки комментария вам необходимо авторизоваться.
Интересная статья, я думаю мне поможет разнообразить сайт. Пожалуй, плагин Custom Post Template — оптимальный вариант для меня, будем пробовать. Только вопрос одни — если создавать отдельные файлы под страницы, это сильно "загрузит" сайт, его оптимизация ухудшится?
[QUOTE="Stian, post: 966, member: 609"]Интересная статья, я думаю мне поможет разнообразить сайт. Пожалуй, плагин Custom Post Template — оптимальный вариант для меня, будем пробовать. Только вопрос одни — если создавать отдельные файлы под страницы, это сильно "загрузит" сайт, его оптимизация ухудшится?[/QUOTE]
Нет, не ухудшит.
Я новичек и к тому же самоучка. Возможно подскажете видео урок, как разобраться с шаблонами. Просто на примере, когда на картинках показано (тоесть видео) лучше схватываю