Подписка
Email
Fb
RSS
Twitter
Email

Отдельный шаблон страницы WordPress

Отдельный шаблон страницы wordpress

Часто бывает нужно задать какой-либо странице блога на WordPress отдельный стиль, отличный от основного дизайна блога. Делается это при помощи задания этой странице отдельного шаблона. Разберем, как все это реализуется.

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

Создаем копию этого файла и называем ее к примеру page_extra.php (имя может быть любым). После этого открываем ее в текстовом редакторе и меняем содержимое на то, какое нам нужно. Например, если нужно изменить шапку, то можно создать отдельный файл header_extra.php (имя опять же не имеет значения), а в файле page_extra.php вместо get_header(); вставляем include(«header_extra.php»); . Аналогично можем поменять другие блоки страницы.

Теперь в самом начале файла page_extra.php пишем

1
2
3
4
5
<?php
/*
Template Name: Extra
*/
?>

Это будет название нашего нового шаблона. Все, сохраняем файл и закидываем его в папку с установленной темой! Туда же отправляем и все вновь созданные файлы (header_extra.php).

Теперь надо применить этот шаблон к нужной странице. Это можно сделать через админ панель блога. Для этого создаем страницу или переходим в админке wordpress на редактирование страниц и меняем шаблон трубуемой страницы на только-что созданный.

Шаблон страницы wordpress
Шаблон страницы wordpress

Так же можно прописать в файле page.php следующий код:

1
2
3
4
5
6
7
8
<?php
if(is_page(3)) {
// если страница имеет ID=3
include 'page-3.php';
} else {
?> 
Здесь основной код шаблона страницы 
<?php } ?>

Для версий WordPress от 2.8 все вышесказанное можно сделать другим методом. Для этого используем функцию:<?php body_class(); ?>. Ее нужно прописать в тег <body> в файле header.php вашей темы.

1
<body <?php body_class(); ?>>

В итоге мы получаем тег <body> с дополнительными классами. И теперь пропишем, к примеру в style.css темы код:

1
2
3
.page h3{
	font-size: 18px;
}

В итоге текст заголовков третьего уровня станет равным 18px, причем только на статических страницах, или

1
2
3
#post-2 {
	color: red;
}

Этот код изменит цвет текста в посте с идентификатором 2 на красный.

Вот полный список классов body которые можно использовать для применения к ним стилей:

  • rtl
  • home
  • blog
  • archive
  • date
  • search
  • paged
  • attachment
  • error404
  • single postid- (id)
  • attachmentid- (id)
  • attachment- (mime-type)
  • author
  • author- (имя)
  • category
  • category- (имя)
  • tag
  • tag- (имя)
  • page
  • page-parent
  • page-child parent-pageid- (id)
  • page-template page-template- (имя файла шаблона)
  • search-results
  • search-no-results
  • logged-in
  • paged- (номер страницы)
  • single-paged- (номер страницы)
  • page-paged- (номер страницы)
  • category-paged- (номер страницы)
  • tag-paged- (номер страницы)
  • date-paged- (номер страницы)
  • author-paged- (номер страницы)
  • search-paged- (номер страницы)
Вы можете оставить комментарий.

19 комментариев к записи “Отдельный шаблон страницы WordPress”

  1. «вставляем include(«header_extra.php»);»

    При таких кавычках ругается: Warning: include() [function.include]:

    Должны быть верхние кавычки, обычные не косые.

    А в целом спасибо за статью, получилось как хотел.

  2. Почем у вас верхний баннер на сутки?

  3. Спасибо, все получилось. Только у меня еще вопрос есть, буду благодарен за подсказку. Делаю интернет-магазин на wordpress, создал страницу с товарами, и чтобы их уместить убрал сайтбар на отдельном шаблоне страницы. Но мне еще нужно расширить область содержимого страницы, до того места где был сайтбар, т.е. до правого края. Надеюсь все понятно описал.  Вот, у меня ширина поста 630 px, а ширина сайтбара допустим 200, значит мне нужно сделать ширину поста 830, чтобы уместить товары на странице.Как прописать в css ширину поста для этой страницы? Как указать саму страницу в css и ее новые параметры?

    • Нужно создать новый id или класс для блока поста, указать для него ширину 830px, и соответственно изменить название класса в новом шаблоне страницы

      • А по подробней нельзя об этом рассказать? Я как раз над этим сейчас бьюсь.

        • Интересно , ответ на ваш вопрос был или нет? У меня тоже именно в этом загвоздка. Уважаемый админ, буду очень благодарна, если подскажите, как именно прописать новый стиль для этой страницы так, чтобы запись имела ширину на весь лист (сайдбары убраны)

          • Смотрите, ширина какого блока определяет ширину всей страницы. Меняете в шаблоне новой страницы ему класс или id или даете новый. 

            Если, например, нужно заменить класс у блока, который задается в хедере, то можно просто заменить функцию вывода хедера (<?php get_header(); ?>) на шаблоне новой страницы на код, который прописан в файле header.php и поменять класс или id.
            Затем прописываете в style.css свойства для вновь созданного класса или id.

  4. Что-то случилось с блогом. Не могу подписаться на RSS. Поправьте пожалуйста.

  5. Nomiki:

    2 DenWeb:типа «каменты» от Paradi и Адлер — это спам от Хрумера ;) Удаляй их смело.

  6. спасибо, все сработало четко )

  7. Почему-то у меня не отображаются варианты шаблонов при редактировании страниц. Тема стандартная  twentyten. C чем может это связано?

  8. Дмитрий:

    Я не понял, откуда взялся файл page-3.php и что в нем находится?

  9. Сделал по этой методике шаблон, добавил файл в тему, а он ни в выборе шаблона, ни в редакторе фалов не отображается

  10. Здравствуйте! Делаю сайт на денвере шаблоне underscore. Вопрос в следующем. Решил сделать не сколько страниц отдельных. Создал новый page.php, все отлично получилось а вот с хедером засада добавляю код, ну давайте скажем как у вас include('header_extra.php') вместо get_heder выдает ошибку что файла не существует, при этом также дублирую хедер с новым названием. В чем проблема? в шаблоне. 

Оставить комментарий

Spam Protection by WP-SpamFree

Яндекс.Метрика