Главная - Изучаем файлы темы WordPress - Варианты одиночной страницы single.php
Важно!
Темы и плагины, о которых я написал свои обзоры и выложил на скачивание, могут не корректно работать на последних версиях WordPress. У меня нет физически возможности проверять все бесплатные темы и плагины WordPress на корректную работу и совместимость. Благодарю за понимание.

Варианты одиночной страницы single.php

Это статья 14 из 18 в серии статей Изучаем файлы шаблона

Несколько дней назад я написал подробную инструкцию – как создать варианты подключения Сайдбаров при просмотре разных категорий (рубрик).

Сегодня хочу рассказать – как можно сделать разные страницы при просмотре отдельной записи.

Напомню одним, для других – расскажу кто не знает:

Шаблон WordPress состоит из списка файлов, в отличие от обычного сайта, написанного на HTML.

Основными файлами шаблона принято считать:

  • header.php – файл заголовка.
  • index.php – основной цикл вывода ленты записей на главной странице (в 95% случаев, иногда в шаблоне главной страницей является статичная страница – шаблон).
  • sidebar.php – боковая колонка (одна, две или несколько).
  • footer.php – подвал шаблона.

Эти файлы формируют главную страницу.

Для вывода архивных записей чаще всего служит файл arhive.php. Он вызывается тогда, когда посетитель выбирает записи из одной рубрики, или записи за определенный месяц, или выбирает нужную ему Метку в Облаке тегов. Еще, как вариант, если несколько авторов, с помощью этого файла можно выбрать все записи одного автора.

Когда посетитель хочет прочитать один пост (одну запись), если она у вас выводится анонсом на главной или в архиве – тогда вступает в работу файл по имени single.php.

Каждый из файлов – header.php, sidebar.php, footer.php – подключаются в файлах index.php, archive.php, single.php – с помощью фуцнкции GET. Выглядит это так: в верхней части файла single.php вы почти всегда можете найти вот такой код:

<?php get_header(); ?>

В нижней – такой:

<?php get_sidebar(); ?>
<?php get_footer(); ?>

Понятно, что слово header – это подключение Заголовка, sidebar  — Сайдбара, footer – Подвала.

Иногда бывает немного по-другому, например, Сайдбар может подключаться в верхней части файла.

Теперь давайте подумаем вот над какой задачей:

Допустим, у вас несколько рубрик, при просмотре полной записи каждой рубрики открывается один и тот же файл single, в котором – одни и те же: Заголовок, Сайдбар, Подвал. А как сделать по-другому – например, при просмотре записей из Рубрики 1 будет открываться не тот Сайдбар, который на Главной, а другой? Или – вы хотите внедрить в код файла single.php разные коды Баннеров? В одном случае – контекстную от Google AdSense, в другом – баннер от Блогуна или Сапы?

Как сделать разные Сайдбары – я рассказывал в прошлой статье, которая называется Как сделать наш шаблон WordPress интереснее, поэтому повторяться не буду.

А что касается вариантов файла single.php, то нам поможет в этом плагин под названием — custom-post-template.

Переводить его не надо – там нечего настраивать. Работает он очень просто. Но сначала, перед его активацией, вам надо сделать один простой шаг:

Скопируйте файл single.php и сохраните его под другим именем, например – single-alt1.php. Затем откройте его в правильном редакторе (с сохранением без сигнатуры BOM!) и добавьте в самом начале файла такой код:

<?php
/*
Template Name Posts: Post News
*/
?>

В переводе звучит как – Шаблон записи. Имя можете написать свое, в моем варианте – Записи в рубрике Новости.

Теперь сохраните файл, зайдите в панель плагинов и активируйте плагин. Перейдите в Записи, Редактирование. Справа внизу, под Рубриками и Метками, у вас появится вот такая секция:

03

В открывающемся списке видно имя шаблона файла single.php. Пока там один вариант шаблона. Если вам надо сделать их несколько – делайте смело, называйте файлы single-alt2.php, single-alt3.php и так далее. В каждом – пишите свое уникальное имя, например, по именам Рубрик. И у вас для каждой отдельной записи той или иной Рубрики будут свои шаблоны отдельной записи.

Скачать плагин можете на официальном сайте WordPress (я вряд ли буду следить за обновлениями, поэтому и не выкладываю его у себя):

http://wordpress.org/extend/plugins/custom-post-template/ (скопируйте ссылку и вставьте ее в адресную строку браузера и нажмите Enter)

Ну, а как подключить разные Сайдбары для каждой отдельной записи – я писал в прошлой статье. А вот как сделать разные Заголовки и Подвалы – подумайте. Кто не додумается – ждите, расскажу в одной из ближайших статей в своей рубрике – Шпаргалки.

Всем успехов в ваших планах по модернизации вашего шаблона.


http://slim-motivator.ru — как похудеть за неделю? Вообще-то мне с трудом верится, но мне и не надо 🙂 А кому надо — стоит хотя бы почитать.

Навигация по серии статейСерия статей — изучаем файлы шаблона — в одном PDF файлеКак отлючить HTML теги в комментариях

О Oleg Vlasov

Я более шести лет профессионально занимаюсь сайтами на CMS WordPress: перевод на русский тем и плагинов; разработка уникальных тем под заказ; сопровождение сайтов, защита и безопасность, продвижение в поисковых системах. У меня несколько своих проектов, в которых я пишу только о WordPress, продаю свои авторские работы, пишу платные и бесплатные видео-уроки. В свободное время люблю ездить на рыбалку. И еще - хочу завести собаку.

10 комментариев

  1. Вот теперь мне более менее стало понятно про файл single.php, а то столько до этого потратил время впустую.
    Единственное автора прошу написать ссылку на свою статью (если есть, если нет — то написать) о том как можно создать отдельную рубрику с тем, чтобы вывод постов в этой рубрике отличались от других. Причем если возможно без плагина. Причем так чтобы было понятно для чайников wordpress. И с учетом что есть адаптивные дизайны сайта где может не быть стандартных файлов php.

  2. василий

    Залез в файл single.php потом после некоторых монипуляций (после которых случилось вот это http://electrogazoswarka.ru/?p=698
    все в низ сползло,а вот статические стр на месте.
    Как можно востановить?что я нетак сделал?

    • Вы что, прямо на рабочем сайте экспериментируете? Жаль, что вы невнимательно читаете мою серию статей. В самом начале я предупреждал — не надо заниматься изменениями на рабочем сайте. Для этого хотя бы надо делать копию родного файла.
      Что теперь делать? Не знаю, я не знаю, что вы меняли. Попробуйте перезалить этот файл, если у вас есть копия на компьютере, или там, где вы скачали тему.

      • василий

        Да в том то и дело что все читал я,да думаю дай кнопку гогл+ поставлю ,блин отказы уже 50%

  3. Помогите кто нить сделать sidebar.php в single.php Вставляю так он у меня или в низу или вверху, ни как ни с боку. Помогите оч прошу!!! Вот сайт antorun.ru

  4. [php]
    if ( in_category(‘foto’) ) { include ‘single-foto.php’;

    } elseif ( in_category(‘zabudovniki’) ) { include ‘single-zabudovniki.php’;

    } else { include ‘single-all.php’;
    }
    [/php]

    • Можно и так, только по-моему, надо писать не in_ , а is_
      Использование плагина — чаще всего удобно для начинающих, кто не знаком с кодом и может поставить (добавить) его неправильно, поэтому я чаще пишу варианты решения с плагинами, когда есть альтернатива — даю оба варианта, но не всегда.
      Спасибо, что внесли второй вариант — читателям наверняка это понравится.

    • Спасибо. Ведь делал примерно тоже самое для сайдбаров. 🙂
      А про посты в конкретной рубрике в голову не пришло. Думал есть какой-то стандартный способ. 🙂

  5. ошибся ссылкой… Вообщем делаем файлики single-mail.php а в файлике single.php вместо самого цикла вставляем код

    вот и всё…

  6. Немного неудобно… получаеться надо вручную выставлять при публикации каждой записи тип шаблона… Можно сделать подругому… Подробно о варианте написано тут: http://forum.maxsite.org/viewtopic.php?id=9553 я поднимал этот вопрос давным давно…

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

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*