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

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

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



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

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

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

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

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

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

  • archive
  • search
  • paged
  • attachment
  • error404
  • single postid- (id)
  • attachmentid- (id)
  • attachment- (mime-type)
  • author
  • author- (имя)
  • category
  • category- (имя)
  • tag- (имя)
  • 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- (номер страницы)

Иногда возникает необходимость в создании новой страницы сайта с новыми возможностями. Например, для создания сервиса проверки тИЦ и PR сайтов, установка и работа которого были описаны в статье « ». Возможности стандартных страниц WordPress не безграничны, и исполнение скриптов на них не предусмотрено, поэтому и придумали умные программисты такой ход – создать новый шаблон страницы, который будет «резиновым», то есть – будет иметь возможность для наполнения его любым функционалом.

Создание нового шаблона темы – не Бог весть какая задача, но для тех, кто с этим сталкивается впервые, этот процесс может представлять определенные трудности. Итак, с чего начинать? Все по-порядку – все файла вашей темы лежат в директории wp-content/themes/тема сайта/. Все процедуры можно производить через админпанель и редактор текста, например, тот же Блокнот или Notepad+. Выберите для создания нового шаблона страницы файл page.php – это пример вашей стандартной страницы темы.

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

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

Имя необязательно писать с большой буквы. Потом, если вы решите, что некоторые элементы страницы вам не нужны (например — строчки , , ), их можно будет убрать. Но это уже относится к формированию дизайна страницы. Мы же сейчас занимаемся грязной работой. То есть – при помощи строк обращений к тем или иным функциям можно до неузнаваемости изменить основной шаблон страницы.

Но как сделать, чтобы эта страница выполняла те или иные вспомогательные функции, то есть, для нее – основные? Необходимо указать действие, которое эта страница будет выполнять, то есть – перенаправлять функцию на ту страницу шаблона, которая занимается исполнение скрипта. На языке программистов это называется «include». Для нас это будет строка , где путь TEMPLATEPATH.»/mmouse-whois.php обозначает путь к файлу, который представляет собой сервис whois – проверка имен домена. Можно организовывать любое исполнение скриптов – опросы, счетчики и т.д.

Вмоем случае на странице nov.php исполняется две функции. То есть, если взять один из примеров – то файл mmouse-whois.php исполняет проверку домена по адресу ресурса, а файл pagenavi.php проверяет занятость домена по IP-адресу клиента. То есть – на странице nov.php исполняется сразу две функции. Но для такой работы вашей новой страницы требуется наличие в директории темы таких файлов, то есть – вам нужно их туда закачать.

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

Вот и создан ваш новый шаблон темы. Видоизменять его вы можете, как вам будет угодно – убрать или добавить сайдбар, установить новый файл заголовка темы или преобразовать подвал файла. Но это уже тема для другой статьи. А для примера, приведенного выше, существующая и работающая и работающая страница выглядит так:

Этот туториал покажет, как создать новый шаблон страницы для шаблонов WordPress Cherry Framework .

    Войдите в админ панель WordPress.

    Откройте меню Страницы -> Добавить новую (Pages -> Add New) и создайте новую страницу с новым шаблоном страницы.

    Введите заголовок страницы и сохраните изменения. В правой колонке в панели вы можете выбрать один из используемых в вашей теме шаблонов страницы. Вам необходимо добавить новый шаблон станицы в этот список. Все эти шаблоны находятся в папке на вашем сервере. Но вам необходимо добавить новый шаблон страницы в папку wp-content/themes/theme##### .

    Создайте новый.php файл в любом редакторе, например, Dreamweaver или Notepad++, и назовите его, например, new.php . Добавьте в этот файл следующий код:

    Сохраните файл и загрузите его в папку wp-content/themes/theme##### на ваш сервер.

    Теперь вернитесь к странице, которую вы создали в админ панели WordPress. В панели Атрибуты страницы (Page Attributes) вы можете выбрать новый шаблон страницы под названием “Пользовательский” (“Custom”).

    Cнова откройте файл new.php file и начните добавлять свой контент. Файл может содержать все, что вы захотите, включая неизменяемый контент или элементы макета страницы, которые будyт выводить ее контент.

    Вы можете использовать элементы кода других шаблонов страницы из папки wp-content/themes/CherryFramework , чтобы создать специфическую страницу.

    Давайте сначала добавим хедер и футер в новый шаблон страницы:

    Если вы сохраните изменения, то сможете увидеть их на странице:

    Теперь необходимо выбрать вид контента, который вы хотите использовать на этой странице. Допустим, у вас нет отдельного шаблона страницы для пользовательских постов “Наша команда” (“Our Team”). И вам нравится дизайн шаблона страницы Отзывов (Testimonials) и вы бы хотели использовать этот дизайн для постов “Наша команда” (“Our Team”). Для этого в меню Дизайн -> Редактор (Appearance -> Editor ) вы легко найдете файл, который содержит код шаблона страницы Отзывов (Testimonials). Его название page-testi.php .

    Откройте этот файл для редактирования. Скопируйте только код контента, так как вы уже добавили хедер и футер (ниже приведен пример данного кода, ваш код может выглядеть иначе):

    " data-motopress-wrapper-file="page-testi.php" data-motopress-wrapper-type="content">
    " data-motopress-type="static" data-motopress-static-file="static/static-title.php">
    " id="content" data-motopress-type="loop" data-motopress-loop-file="loop/loop-testi.php">
    sidebar" id="sidebar" data-motopress-type="static-sidebar" data-motopress-sidebar-file="sidebar.php">

    Вставьте скопированный код в файл new.php. Замените Template Name: Custom на Template Name: Team

    И замените page-testi.php на new.php в этом коде.

    Данный код также содержит ссылку на файл loop/loop-testi.php . Это еще один файл, который вам необходимо скопировать и редактировать. Скопируйте файл loop-testi.php из папки wp-content/themes/CherryFramework/loop и вставьте его в папку wp-content/themes/theme#####/loop (если в папке вашей темы отсутствует папка loop , вам следует создать ее). Переименуйте этот файл, например, на loop-new.php и откройте его для редактирования. Замените слово “testi” на слово “team” во всех строчках файла и сохраните изменения. (Для замены слов вы можете использовать комбинацию клавиш Control (Command) + F).

    Когда файл loop-new.php создан и отредактирован, снова откройте файл new.php и замените loop/loop-testi.php на loop/loop-new.php в его коде. В результате ваш код будет выглядеть следующим образом:

    " data-motopress-wrapper-file="new.php" data-motopress-wrapper-type="content">
    " data-motopress-type="static" data-motopress-static-file="static/static-title.php">
    " id="content" data-motopress-type="loop" data-motopress-loop-file="loop/loop-new.php">
    sidebar" id="sidebar" data-motopress-type="static-sidebar" data-motopress-sidebar-file="sidebar.php">

    Сохраните изменения и проверьте вашу новую страницу. Теперь она должна содержать пользовательские посты “Наша команда” (“Our Team”) с дизайном страницы Отзывов (Testimonials).

Шаблоны для Страниц в WordPress предназначены для того чтобы придать индивидуальный вид вашим страницам. Чаще всего все страницы имеют один шаблон, либо вариант шаблона с сайдбаром и без него. Согласитесь, этого мало для полета фантазии. В этом уроке мы рассмотрим как лучше всего создавать свои шаблоны для страниц.

Что такое шаблоны страниц

Тема в WordPress может иметь несколько разных шаблонов для вывода страниц, записей, архивов и так далее. Среди шаблонов мы рассматриваем сейчас шаблоны для Страниц. При создании Страницы в WordPress можно выбрать специальный шаблон для неё:

Разные темы могут предоставлять разные шаблоны страниц, например шаблон для страницы во всю ширину экрана (без боковой колонки), с левой боковой колонкой вместо правой и прочее. Отсутствие этой опции при редактировании страниц означает, что тема не объявила дополнительные шаблоны.

Шаблоны страниц можно использовать более чем для одной страницы, а некоторые темы создают вполне специфические шаблоны, предназначенные для использования всего один раз.

Как создать собственный шаблон страницы

При использовании дочерней темы вы можете так же размещать шаблоны страниц в корневой директории или субдиректории, а если выйдет обновление для родительской темы, то ваши файлы не пострадают.

Когда не следует использовать шаблоны страниц

Если с помощью вашего шаблона вы изменяете лишь стиль, а не структуру определенной страницы, то вы можете это сделать и без использования дополнительных шаблонов.

В WordPress есть вспомогательная функция body_class() , которая используется в большинстве существующих тем. С помощью классов выводимых данной функцией, вы можете изменить стиль одной любой страницы используя CSS код:

/* Спрятать боковую колонку на странице 123 */ body.page-id-123 #secondary { display: none; }

Шаблоны страниц так же не следует использовать, чтобы изменить параметры основного цикла WordPress, например для добавления произвольного типа записей или исключения категории. Для таких целей есть специальный фильтр pre_get_posts в WP_Query() .

Если у вас возникли вопросы по работе с шаблонами страниц в WordPress, буду рад ответить на них в комментариях.

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

К данному вопросу возвращаюсь уже не первый раз, захотел собрать все нюансы и знания в одном месте. К счастью, современные методы по сравнению с прошлыми модификациями, максимально просты. Вам даже не надо ставить дополнительные модули, как раньше. Разработчики WordPress действительно упрощают и улучшают систему.

Итак, сегодня рассмотрим:

Разные шаблоны страниц / записей в WordPress

Теоретически все, что вам нужно в этом случае — размещение некого кода в самом верху соответствующего файла:

/* * Template Name: NoAds Single Page * Template Post Type: post, page, product */ ?>

В первой строке указывается название для WP админки, во второй определяются типы записей, в которых можно этот макет применять (в примере: post, page и product).

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

Общий алгоритм действий:

1. С помощью FTP клиента FileZilla заходите на свой хостинг в директорию с названием установленной темы wp-content/themes/имя_темы (или дочерней).

2. Копируете файл, используемый для отображения постов/страниц (single.php и page.php) на локальный компьютер.

3. Переименовываем, например, в page-new.php или page-noads.php и т.п. (название роли не играет).

5. Загружаете новый вариант обратно на хостинг в ту же директорию.

Выбор шаблона страницы в WordPress

Теперь переходим в админку системы, открываем любую публикацию для редактирования и ищем там следующий блок:

Отображаемое здесь название задается в строке Template Name.

Кстати, удобно, что доступно , то есть изменить шаблон страниц можно сразу у нескольких объектов. Переходите в пункт «Все записи», где отмечаете парочку статей и выбираете в «Действиях» значение «Изменить».

После выбора не забудьте кликнуть «Обновить».

Разный сайдбар, хедер, футер и не только

Внимательно посмотрев на установленную тему, увидите, что для вывода базовых элементов там применяются стандартные функции: get_sidebar, get_header, get_footer. Если вы модифицировали свой макет, но оставили их там, то на сайте будет отображаться такое же содержимое, что и в основном варианте.

Разберем самую простую ситуацию — у нас получился новый исправленный page.php, но в сайдбаре также требуется внести некоторые коррективы. В таком случае вместо get_sidebar я использую конструкцию:

Разумеется, вам нужно создать соответствующий файл sidebar-category-noads.php . Хотя, теоретически, можно сразу в новом макете писать код без include, но так структура становится менее наглядной.

Понятно, что фишка применима не только к этим трем блокам на сайте, а и любым другим — внимательно изучайте исходники, которые используете в работе.

Отдельные шаблоны записей по категориям

Тут, по сути, имеется два способа. Я лично предпочитаю тот, что попроще — открываете единичный пост single.php в редакторе, и размещаете код:

In_category проверяет какому разделу принадлежит публикация: если с ID=5, то грузится single-category5.php, в противном случае — single-forall.php. Конечно, эти два файла следует добавить на FTP заранее (можно опять же скопировать из исходного и слегка подправить) + названия допускаются любые.

Второй вариант рассмотрен . Вам нужно разместить следующий код в functions.php:

/* * Define a constant path to our single template folder */ define (SINGLE_PATH, TEMPLATEPATH . "/single" ) ; /** * Filter the single_template with our custom function */ add_filter("single_template" , "my_single_template" ) ; /** * Single template function which will choose our template */ function my_single_template($single ) { global $wp_query , $post ; /** * Checks for single template by category * Check by category slug and ID */ foreach ((array ) get_the_category() as $cat ) : if (file_exists (SINGLE_PATH . "/single-cat-" . $cat -> slug . ".php" ) ) return SINGLE_PATH . "/single-cat-" . $cat -> slug . ".php" ; elseif (file_exists (SINGLE_PATH . "/single-cat-" . $cat -> term_id . ".php" ) ) return SINGLE_PATH . "/single-cat-" . $cat -> term_id . ".php" ; endforeach ; }

/* * Define a constant path to our single template folder */ define(SINGLE_PATH, TEMPLATEPATH . "/single"); /** * Filter the single_template with our custom function */ add_filter("single_template", "my_single_template"); /** * Single template function which will choose our template */ function my_single_template($single) { global $wp_query, $post; /** * Checks for single template by category * Check by category slug and ID */ foreach((array)get_the_category() as $cat) : if(file_exists(SINGLE_PATH . "/single-cat-" . $cat->slug . ".php")) return SINGLE_PATH . "/single-cat-" . $cat->slug . ".php"; elseif(file_exists(SINGLE_PATH . "/single-cat-" . $cat->term_id . ".php")) return SINGLE_PATH . "/single-cat-" . $cat->term_id . ".php"; endforeach; }

После этого в директории темы создаете новую папку «single» по типу /wp-content/themes/ваша_тема/single/ куда загружаете файлы, название которых имеет следующий формат single-cat-{category-slug}.php, например: single-cat-news.php или single-cat-articles.php . Данный метод лично я не тестил, но источник надежный.

Дополнительные нюансы

Напоследок 2 небольших замечания. Иногда бывает, что в премиальной теме в админке нет выбора макета для постов (post), а вместо них разработчики внедрили форматы. В таком случае можно использовать для альтернативного вывода инфы один из них.

Метод, конечно, не самый грамотный, но работает. Не забудьте внести правки в соответствующий файл.

Вторая фишка — когда нужно скрыть/показывать виджет в зависимости от выбранного варианта макета. В таком случае на помощь приходит и условные операторы is_page_template либо has_post_format.

Итого. Повторюсь, если требуется создать разные шаблоны страницам и постам в Вордпресс, но при этом сами page.php и single.php отличаются, то вы для каждого из них делаете свою «копию». Когда же их структура одинакова, новые возможности системы позволяют сделать всего один макет, где в описании Template Post Type просто указываете типы объектов, с которыми он будет работать.

Если есть вопросы по основной части заметки, и по доп.нюансам, пишите ниже, — постараюсь ответить.