Создание шаблона страниц на WordPress

Ранее я уже писал как сделать вывод произвольного списка страниц на wordpress, теперь рассмотрим как создать отдельный шаблон для каждой страницы. Сначала рассмотрим как создаются шаблоны страниц, а в конце статьи приведу пример, как можно грамотно использовать шаблоны страниц и увеличить кол-во страниц 3-го уровня, что, в свою очередь, немаловажно для торгующих ссылками на бирже sape.

За показ отдельных страниц в wordpress отвечает файл page.php, находящийся в папке с темой, чтобы добавить страницу произвольного содержания необходимо создать новый файл, например, new-page.php и добавить в начало страницы код:

<?php
/*
Template Name: название_шаблона
*/
?>

Сохраняем и получаем новый шаблон, теперь его требуется "облагородить" (т.к. сейчас мы увидим белый экран), для этого вставляем в файл new-page.php функции:

<?php get_header(); ?> //шапка сайта
<?php get_sidebar(); ?> //сайдбар
<?php get_footer(); ?> //футер

Если все правильно обмотать дивами (рекомендую копировать весь код с шаблона по умолчанию, т.е. с page.php, а из него уже удалить все лишнее), мы получим новый шаблон страницы идентичный дизайну основного сайта, теперь на саму страницу можно добавить функции, ради которых и делался данный шаблон (форма обратной связи, карта сайта и т.д.).

Новый шаблон загружаем в папку с используемой темой, там же, где и файл page.php, переходим в админку и создаем новую страницу ("Добавить новую"), в сайдбаре справа выбираем созданную тему: Атрибуты» Шаблон» в выпадающем списке выбираем тему с названием, которое дали в самом начале.

Как и обещал - пример применения отдельных шаблонов страниц, для увеличения кол-ва страниц третьего уровня вложенности. Ранее, когда я только начинал осваивать wordpress при разработке одного из сайтов мне захотелось сделать отдельную страницу с облаком меток (а ля хабра), многие спрашивают зачем она вообще нужна, ведь мало кто полезет на страницу с сотней меток искать интересущую их информацию... так то оно так, но вот улучшить внутреннюю перелинковку и увеличить кол-во страниц 3-го уровня для sape - это оптимальный вариант.

В общем, хватит оффтопа, пример:

<?php
/*
Template Name: tag-page
*/
?>
<?php get_header(); ?>
<div id="page">
    <div id="content">
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <div class="post">
            <h1 class="title"><?php the_title(); ?></h1>
            <div class="entry">
                <?php wp_tag_cloud('number=1000'); ?>
            </div>
        </div>
    </div>
    <?php endwhile; endif; ?>
</div>
<div style="clear: both; height: 30px">&nbsp;</div>
<?php get_footer(); ?>

Получаем отдельную страницу с облаком меток, функция: <?php wp_tag_cloud('number=1000'); ?> выведет 1 000 меток на странице, вы можете указать любое значение; <?php the_title(); ?> - выведет заголовок страницы, например, "Метки". Сайдбар в шаблон добавлять не стал. Текущая процедура увеличит кол-во страниц третьего уровня.

Аналогично можно увеличить кол-во страниц 2-го уровня, если код выводящий виджет "Метки"  заменить на <?php wp_tag_cloud('number=100'); ?>, по умолчанию он имеет вид: <?php wp_tag_cloud(); ?>, т.е. без переменной и выводит примерно 30 меток. В свою очередь это увеличит кол-во страниц третьего уровня:)

Топик получился не совсем "гибкий", но думаю суть ясна, что не понятно, спрашивайте в комментариях. В ближайшее время напишу как это все быстро реализовывать с помощью Aptana Studio.

Комментарии (9):

  1. Виталий

    15 июля 2009 в 02:58  #

    Большое спасибо!

  2. Радик

    15 сентября 2009 в 10:42  #

    Хорошая статья!!!

  3. Vladimir

    26 декабря 2009 в 11:45  #

    Где находятся сами страницы на сервере. В какой папке?

  4. Andrey

    16 февраля 2010 в 01:34  #

    Спасибо огромное как раз то что искал. А то много близкого по теме, а того что надо не находил. Самое главное что почерпнул (как же оказалось просто)

    без этого шаблон не отображался в админке, а я себе мозг выносил почему :)

  5. onjee

    7 мая 2010 в 11:12  #

    Блин не могу понять почему шаблон не отображается в админке

  6. makegood

    7 мая 2010 в 11:19  #

    onjee, сталкивался с такой проблемой несколько раз, помогало переключение на другую тему, а потом обратно, возможно, это как-то связано с внутренним кэшем

  7. Максим

    22 января 2011 в 10:50  #

    Большое спасибо все прекрасно получилось, отличная статья!!!

  8. Tooki

    16 мая 2011 в 14:59  #

    Спасибо большое ;) Сейчас необходимо поднять сайт на WP, есть готовая страница, не мог прикуртить никак. Не знал что комменты имею значение в WP. Еще раз спасибо

  9. west

    28 января 2014 в 18:19  #

    Столкнулась с ошибкой как у onjee.
    Решается добавлением в начало шаблона: