Вордпресс шаблон страницы. Как сделать страницу на WordPress
Этот туториал покажет, как создать новый шаблон страницы для шаблонов 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 .
Откройте этот файл для редактирования. Скопируйте только код контента, так как вы уже добавили хедер и футер (ниже приведен пример данного кода, ваш код может выглядеть иначе):
Вставьте скопированный код в файл 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 в его коде. В результате ваш код будет выглядеть следующим образом:
Сохраните изменения и проверьте вашу новую страницу. Теперь она должна содержать пользовательские посты “Наша команда” (“Our Team”) с дизайном страницы Отзывов (Testimonials).
Ребята, всем привет. С вами Александр Борисов. Так как сейчас в мире интернет-бизнеса идет ожесточенная борьба за место под солнцем, я очень много времени уделяю стратегиям развития, укреплению оборонительных позиций и еще кое чему секретному, то пишу не так часто.
Ни чего, сейчас все свои планы осуществлю, и потом буду писать много ну и поговорим мы с вами про мною вышесказанное. Я думаю, что уже многие чувствуют, что происходит в сети, поэтому сейчас выживут только сильнейшие. Ой не завидую я новичкам... Ок, короче не пропустите мои статьи на эту тему.
В сегодняшней статье я хотел бы рассказать вам об одной фишке, которая для многих из вас не будет чем-то новым, но вот новичкам очень даже пригодиться. Ну если честно, я сам далеко не новичок, но об этой штуке узнал совсем не давно, когда, как говорится, приперло.
В общем, сегодня я расскажу вам о том, как сделать отдельный шаблон для ваших страниц блога или записей (статей). Если кто-то не понимает о чем это я, то покажу на конкретном примере. Вот сейчас вы читаете эту статью, а вы не заметили, что в начале статьи вы не увидели двух баннеров размера 468×60?
Не увидели баннера 468×60, который расположен в конце статьи. Не увидели виджет комментариев cackle, рекламы Google Adsense... Заметили? А посмотрите на другие статьи моего блога. Там все это есть. .
Как у меня это получилось так сделать? Как вы знаете, за вывод всех статей нашего блога, отвечает файл single.php который лежит в папке с темой wp-contetn/themes. Так вот, чтобы написать новую статью и убрать в ней, что-то, что вам не нужно или наоборот добавить, нужно просто сделать так, чтобы именно эта статья выводилась при помощи другого файла.
Не стандартного single.php, а например single-2436.php или post.php, которые лежат в той же папке с темой вашего блога. Эти файлы должны содержать абсолютно то же самое, что и файл single.php, только естественно вы там что-то убираете или добавляете, как вам надо.
Ну вот у меня например в файле single.php в начале стоят коды, которые отображают во всех записях блога два баннера 468×60. Чтобы сделать так, чтобы в новой статье этих баннеров не было, мне просто надо в новом файле single-2436.php или post.php (смотря какой способ из 2-х мною предложенных вы выберите дальше) убрать эти коды.
Я думаю вы меня понимаете. Собственно вопрос у вас, а зачем вообще создавать другие шаблоны страниц и записей в wordpress? Ну если хорошенько вы подумаете, то поймете зачем. Я сейчас приведу вам лишь один пример.
Ну в принципе я то согласен разместить их баннер, но как это сделать, если у меня все одинаково во всех записях блога. Одинаковый шаблон для всех статей. Поняли о чем я? Я думаю, что я вам даже уже интересную идею закинул в ваш моцк. =)
Решение оказалось простое. Нужно создать отдельный шаблон записи и все. Давайте сейчас я расскажу вам как эти шаблоны создаются двумя способами, а вы уже выберите для себя подходящий. Сразу скажу, что я выбрал второй вариант. Создание шаблона без плагина. Не люблю я их.
№1 — шаблон single.php плагином Custom Post Template
Вот так это будет выглядеть примерно:
Готово! Теперь когда вы пишите новую статью и вам нужно, чтобы она выводилась именно с этим шаблоном, то просто в самой статье справа выбираете тот шаблон, что создали:
Нужен еще один шаблон записи wordpress, нет проблем. Создаете другой файл, например post2.php так же там меняете код (в начале вставляете код, только уже с post2) как вам надо и при публикации статьи выбираете в Post Template уже post2.php. Элементарно! Редактируя шаблон можно менять все что угодно! Занимайтесь...)))
№2 — шаблон single.php небольшим пуком в functions.php
Шаг №1 — Помещаем в самое начало файла functions.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");
Шаг №2 — При написании статьи в блог (еще до публикации) вычисляем ее ID. Это не сложно, в строке браузера есть ее номер:
У меня это 7525.
Шаг №3 — Создаем копию файла single.php, только уже называем ее так single-7525.php
Шаг №4 — Опять же в этом новом файле что-то добавляем или убираем как нам надо.
Шаг №5 — Публикуем статью в блог.
После публикации WordPress, за счет того пука, что мы добавили в functions.php поймет, что эту статью надо выводить не single.php, а single-7525.php. Я думаю понятно.
Что лучше плагин или пук?
Теперь не большое заключение. Что лучше плагин или пук в функтионс? Тут все зависит от ваших потребностей. Если вам нужно много шаблонов записей wordpress, то лучше наверное плагин, сами понимаете, что если использовать пук, то вам придется для каждой записи создавать новый файл в папке с темой, а прикол когда их будет 100 или 200.
Если 2-3-5 шаблонов, то можно и пукнуть в функтионс. Ну вот в принципе и все. Я думаю, ни чего сложного. Вроде мелочь, а на самом деле очень классная фишка.
Как сделать шаблон страницы wordpress
Ну тут вообще все просто. Когда-то я про это уже мельком рассказывал в статье про для блога. Схема простая, тут даже не надо ни каких пуков и ни каких плагинов.
За вывод страниц блога у нас отвечает файл page.php который так же лежит в папке с темой вашего блога.
Шаг №1 — делаем копию этого файла в папке с темой
Шаг №2 — переименовываем этот файл например в puk.php
Шаг №3 — Меняем в этом файле все как нам нужно.
Шаг №4 — Добавляем в начало файла puk.php вот такой код:
Шаг №5 — Публикуем новую страницу в блог, только справа выбираем нужный нам шаблон:
Готово! Ну вот вроде бы и все на сегодня. Может быть у кого-то есть какие-то вопросы? По идее все объяснил доступно даже самому самовару. В заключение интересное объявление. Помните в курсе КСБТ 3.0 я говорил про то, что хороший ссылочный профиль — залог успешного продивжения? Так вот совет:
C уважением, Александр Борисов
Не так давно был опубликован мануал о . Он носил характер знакомства на начальном этапе, но также включал в себя и практические примеры. Хотелось бы продолжить это направление, только уделить внимание страницам. Материал по данной теме является многофункциональным, то есть очень большим. Поэтому затруднительно будет открыть все возможности шаблона страниц в одной статье. Но по меньшей мере постараемся затронуть косвенные детали и, конечно, главные параметры.
Иерархия страниц
Иерархия – это означает последовательность от вышей ступеньки до самого низа, или наоборот. В нашем случае это же порядок авторитетности шаблонных файлов для страницы. Когда пользователь попадает на одну из ваших страниц, то WordPress показывает ее содержимое исходя из варианта создания страниц (подробнее ниже).
Пользовательский шаблон – обозначается условным комментарием вверху внутри файла с произвольным названием.
page-slug.php – шаблон с названием страницы (ярлыка). Если пользовательский шаблон не был указан, то WordPress использует данный тип в качестве основного.
page-id.php – уникальный идентификатор страницы.
page.php – стандартный файл, отвечающий за содержимое страниц.
index.php – индексный файл. Если WordPress не найдет ни одного из выше перечисленного шаблона, то по умолчанию ответственный за страницы станет именно он.
Внимание. Также существует шаблон страницы в WordPress, который называется paged.php, однако, он не используется для вывода страниц единичных постов, скорее для показа списка страниц в архивах записей.
Создание пользовательского шаблона для массового использования
Есть несколько вариантом создания шаблона со своими плюсами и минусами, почти незначительными. Этот вариант, который сейчас мы рассмотрим, является самый распространенный. Первым делом необходимо создать файл php или продублировать стандартный page.php . После чего сохранить его под другим именем, к примеру, templates_my.php . Затем вверху файла добавить комментарий:
Следующим действием загрузите файл в вашу тему, перейдите в админ-панель во вкладку «Страницы-Добавить новую» или можете открыть существующею. В атрибутах страницы выберете какой шаблон будет использоваться на этой странице.
Если вдруг у вас не окажется панели «Атрибуты страницы» тогда просто поставьте галочку в настройках экрана верхнем правом углу, чтобы ее отобразить.
Массовое использование подразумевается, что данный тип шаблона может применяться к любым страницам сайта. В отличие от специализированного, который создавался с определенным идентификатором или ярлыком страницы.
Совет. Шаблон, созданный таким способом, может быть расположен в подпапке текущей темы. Тем самым не занимая лишнего места и создавая компактный вид.
Важно. Не используйте префикс page- в качестве названия шаблонной страницы. Так как WordPress будет интерпретировать файл как специализированный, что однозначно применяется только к одной странице.
Специализированные шаблоны страниц
Второй способ предназначен только для определенных страниц без исключения. Приведем пример по старой схеме. Допустим, у вас есть страница с названием «Портфолио», по умолчанию ее ярлык транслируется в английское слово «portfolio». Это можно увидеть в настройках «Страницы-Свойства». Теперь просто дублируем файл page.php и переименовываем в page-portfolio.php .
С идентификатором создается точно так же, только вместо ярлыка подставляется ID страницы. Он находится в адресной строке, раздел «Страницы-Изменить» выглядит так post=9 . Таким же макаром дублируется стандартный файл и переименовывается в page-9.php .
Важно. Однотипный шаблон, который создан только для конкретной страницы не может находиться в подпапках темы. Точно также, как и в дочерних темах.
Практический пример создания шаблона страниц
Сейчас для примера создадим шаблон на основе первого варианта и изменим в нем цикл, добавив вывод категорий с записями. Открываем любой редактор, добавляем ниже представленный код, сохраняем под названием template_my.php , загружаем на сервер.
- ">
Категория-1
have_posts()) : $the_query -> the_post(); ?>- ">
Категория-2
have_posts()) : $the_query -> the_post(); ?>- ">
Категория-3
have_posts()) : $the_query -> the_post(); ?>Теперь нужно прописать стили в файле style.css
My_main { box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); margin: 20px auto; padding: 15px; background: #fff; width:1000px; } .page_cat { margin: 0 9px 20px; padding: 15px; vertical-align: top; width: 28%; display: inline-block; } .page_cat h2 { color: #676767; font: bold 18px arial; margin-bottom: 20px; } .page_cat li a { text-decoration: none; color: #2879af; display: block; } .page_cat li { margin-bottom: 6px; padding: 3px 3px 3px 10px; display: block; } .page_cat li a:hover { text-decoration: underline; } .page_cat li:nth-child(2n) { background: #f7f7f7; }
Осталось сделать одно: в админ-панели во вкладке «Страницы-Изменить» указать в атрибутах страницы наш ранее созданный шаблон «шаблон для примера».
Результат.
Условные теги страниц
В заключительном пункте рассмотрим несколько условных тегов. Прописываются они в стандартном файле page.php .
Вывод элементов на определенных страницах
/images/img.png"/> /images/img.jpg"/> /images/img.jpg"/> /images/img.jpg"/>
вывод информации
В WordPress можно создавать страницы (pages) или записи (posts). Когда вы пишете обычную запись в блог - вы создаёте запись. Записи автоматически появляются на главной странице в обратном хронологическом порядке.
Страницы же предназначены для такого содержимого как "Обо мне", "Контактная информация" и тому подобное. Страницы находятся вне нормальной хронологической последовательности записей и часто используются для нечувствительной к хронологии информации - той, которая всегда востребована. С помощью страниц можно организовать и управлять любым количеством содержимого.
Также можно привести такие примеры как страницы об авторском праве, лицензионные соглашения, правила использования, информации о сайте. Кстати, хорошим правилом является наличие страницы с информацией о сайте или компании и/или страницы с контактными данными. Вот один из советов от Lorelle (на английском языке) .
В целом, страницы очень похожи на записи - и те и другие имеют название и содержимое и могут использовать шаблоны представлений (Presentation Templates) для сохранения целостного вида сайта. Однако страницы имеют несколько ключевых отличий от записей.
О страницах коротко
Чем страницы являются и что могут:
- Страницы являются контейнером для содержимого, которое не зависит от времени.
- Страницы могут использовать различные шаблоны, которые могут включать в себя , метки шаблона () и код PHP.
Чем страницы НЕ являются и что НЕ могут:
- Страницы - не записи. Они не проходят циклически через главную страницу. Примечание: Включать записи в страницы можно с помощью модуля Inline Posts Plugin .
- Страницы - не пункты меню, даже если список страниц выводится на месте навигации. Для создания полноценного навигационного меню существует отдельный механизм.
- Страницы не могут быть связаны с рубриками и метками. Организационная структура опирается только на иерархию.
- Страницы - это не файлы. Они сохраняются в базе данных точно так же, как записи.
- Хотя в шаблон страницы можно добавить код PHP, в саму страницу нельзя добавить код так, чтобы при этом он ещё и работал. Примечание: Этого можно достичь, используя модуль, работающий с PHP, такой как Exec-PHP или RunPHP
Создание страниц
Для того чтобы создать страницу войдите в Wordpress с достаточными привилегиями для создания статей. Выберите > > для того чтобы начать работу с новой страницей.
Изменение URL или слага (Slug) страниц
С версии 2.5 смена URL страниц стала менее интуитивной. Если у вас включены пермалинки (Permalinks) и вы выбрали настройку Day and Name (Нажмите Settings и в открывшемся списке Permalinks ), то пермалинк автоматически покажется под названием записи, когда вы начнёте печатать в теле записи (не только в заголовке).
Несмотря на то, что вы можете выбрать несколько разных настроек пермалинков или вообще их не задействовать, для того чтобы редактировать URL страницы, вы должны сделать следующее:
- Создать страницу с помощью Write > Page .
- Опубликовать её, нажав Publish .
- Перейти в Manage > Pages .
- Нажать Edit рядом со страницей.
- Посмотреть на пермалинк под заголовком и нажать Edit , чтобы его поменять.
Таким образом, если у вас не включено использование пермалинков, вы должны опубликовать ваши страницы перед тем как устанавливать URL.
Вывод страниц на сайте
WordPress способен автоматически создавать список страниц сайта, например в боковой колонке, используя называемую wp_list_pages() . Прочтите для более подробной информации, в том числе как:
- Сортировать список страниц. Полная настройка порядка вывода описана в секции "Page Order" административной панели Write > Page.
- из вывода или прятать страницу
- Управлять отображением страниц, то есть выводить ли все страницы или некоторые подстраницы.
- Определять насколько глубоко список уходит в иерархию страниц.
Copyright 1996-2006
Подобная задача может возникнуть, когда вам в пределах одного сайта нужно иметь разные шаблоны страниц в плане оформления. Самая простая ситуация, что приходит на ум: скрытие рекламы/баннеров в избранных статьях; либо вдруг захотите удалить в некоторых публикациях списки похожих заметок или, допустим, какие-то элементы . Сегодня научу вас это делать.
К данному вопросу возвращаюсь уже не первый раз, захотел собрать все нюансы и знания в одном месте. К счастью, современные методы по сравнению с прошлыми модификациями, максимально просты. Вам даже не надо ставить дополнительные модули, как раньше. Разработчики 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 просто указываете типы объектов, с которыми он будет работать.
Если есть вопросы по основной части заметки, и по доп.нюансам, пишите ниже, — постараюсь ответить.