Single php page php wordpress

Иерархия файлов темы (шаблона)

В этом посте речь пойдет о том, какие бывают названия у файлов темы WordPress и за показ какой страницы на сайте отвечает каждый из них. Это очень важные, нужные, и в тоже время очень простые, для понимания, знания. Ими должен обладать каждый, кто работает с WordPress. Ниже полностью расписана структура файлов темы WordPress и порядок их подключения (иерархия). Об иерархии файлов темы я упоминал в статье «Условные теги в WordPress». А ниже тоже самое, только описано подругому (надеюсь более понятно).

  • Пример того как работает иерархия
  • Другие файлы темы
  • Типы страниц и названия файлов
  • Записи
  • Страница (запись page)
  • Запись (запись post)
  • Произвольный тип записи
  • Вложение
  • Архивы
  • Рубрика
  • Метка
  • Таксономия
  • Страница архива типа записи
  • Страница автора
  • Страница архива по дате (день, месяц, год)
  • 404 страница
  • Страница поиска
  • Главная страница
  • Страница блога
  • Встраивания (embeds)
  • Как это работает в коде ядра
  • Фильтры

Пример того как работает иерархия

Например, мы заходим на страницу рубрики «Моя рубрика» http://example.com/category/my-category . my-category здесь — это ярлык этой рубрики. И ID этой рубрики 25 .

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

  1. category-my-category.php
  2. category-25.php
  3. category.php
  4. archive.php
  5. index.php
Читайте также:  Change colors in html text

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

Другие файлы темы

Также, в WordPress есть общепринятые подключаемые файлы. Он не участвуют в иерархии, а просто подключаются вручную там где нужно. Например файл sidebar.php подключается в файле шаблона темы с помощью функции get_sidebar().

Список таких «подключаемых» файлов:

  • functions.php — всегда подключается автоматически при загрузке темы.
  • header.php — get_header()
  • sidebar.php — get_sidebar()
  • footer.php — get_footer()
  • searchform.php — get_search_form()

Типы страниц и названия файлов

Теперь когда мы понимаем как работает иерархия, давайте посмотрим на все варианты названий файлов, которые WordPress пытается найти при посещении той или иной страницы сайта.

Полная схема для всех видов страниц и подходящих для них файлов выглядит так:

Теперь, я распишу эту картинку, сделаю из неё список страниц сайта и подходящие для них php файлы темы.

Файлы из списка ниже должны находится в папке темы.

Записи

Страница (запись page)

Запись (запись post)

  • single-post-.php
  • single-post.php
  • single.php
  • singular.php
  • index.php

Произвольный тип записи

  • .php (для древовидного типа с поддержкой шаблонов. С WP 4.7)
  • single—.php
  • single—.php
  • single-.php
  • single.php
  • singular.php
  • index.php

Вложение

  • .php
  • .php
  • -.php
  • attachment.php
  • single-attachment-.php (позволяет указать шаблон для отдельной картинки)
  • single-attachment.php (тоже что и attachment.php)
  • single.php
  • singular.php
  • index.php

Под началом и концом MIME типа, имеется виду первая и последняя часть MIME типа, разделенная / . Например, MIME-тип текстового файла: ‘text/plain’ и значит будет проверяться наличие файл text.php , затем plain.php , затем text-plain.php .

Полный список MIME типов смотрите в описании get_allowed_mime_types().

Архивы

Рубрика

  • category-.php
  • category-.php
  • category.php
  • archive.php
  • paged.php (если страница пагинации)
  • index.php

Метка

  • tag-.php
  • tag-.php
  • tag.php
  • archive.php
  • paged.php (если страница пагинации)
  • index.php

Таксономия

  • taxonomy—.php
  • taxonomy-.php
  • taxonomy.php
  • archive.php
  • paged.php (если страница пагинации)
  • index.php

Страница архива типа записи

Страница автора

  • author-.php
  • author-.php
  • author.php
  • archive.php
  • paged.php (если страница пагинации)
  • index.php

Страница архива по дате (день, месяц, год)

404 страница

Страница поиска

Главная страница

  • front-page.php
  • Логика постоянных страниц, когда для главной выбрана страница в настройках.
  • home.php
  • index.php

Страница блога

Страница блога появляется, когда для главной выбрана постоянная страница

Встраивания (embeds)

Шаблоны встраивания используются когда запрашивается короткая версия статьи для добавления её на другом сайте. Обычно такие URL выглядят так: http://dom/post-url/embed Встраивания появились в версии 4.5 и позволяют встраивать ваши записи в чужие сайты. См. get_post_embed_url()

Чтобы изменить только контент встраивания, можно в теме создать файл embed-content.php и описать там HTML. Оригинальный HTML находится в файле движка /wp-includes/theme-compat/embed-content.php

Как это работает в коде ядра

За всю логику: какой файл подключать, отвечает файл ядра wp-includes/template-loader.php. Если разобраться, в нем все описано. Но, это занятие не особо интересное, поэтому я его распишу.

Прежде всего. template-loader.php подключается после того как загрузится вся среда WordPress. После того, как отработает файл wp-load.php и обработается основной запрос — функция wp(). Т.е. template-loader.php подключается в самом-самом конце PHP скрипта.

Сначала срабатывает хук template_redirect. В этом хуке можно произвести какие-то проверки и если надо перенаправить на другой URL. В нем нужно обрывать работу скрипта через die() . Т.е. если этот хук что-то меняет, то на этом работа файла template-loader.php должна закончиться и мы «улетаем» на какую-то другую страницу.

Дальше срабатывает никому не интересный хук exit_on_http_head. Он позволяет сделать так, чтобы при HTTP HEAD запросе что-либо выводилось на экран.

Дальше идут проверки по всем условным тегам где выясняется какой файл шаблона подходит под текущий запрос. Проверяется условный тег, затем еще один и еще. Как только один из условных тегов сработал, вызывается соответствующая функция, которая находит подходящий файл шаблона и возвращает путь до него. Все такие функции описаны в get_query_template().

Дальше — путь до файла шаблона определен! Теперь путь проходит через фильтр template_include. Который позволяет нам изменить путь до файла шаблона для текущего запроса.

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

Фильтры

Иерархию файлов можно изменить через динамические фильтры:

  • (type)_template_hierarchy — фильтрует массив названий файлов иерархии, по которому будет идти поиск нужного файла. С WP 4.7.
  • (type)_template — фильтрует путь до уже определившегося файла шаблона.

Все варианты параметра type смотрите в одноименном параметр $type функции get_query_template(). Вот они:

  • index
  • 404
  • archive
  • post_type_archive
  • author
  • category
  • tag
  • taxonomy
  • date
  • home
  • frontpage
  • page
  • paged
  • search
  • single
  • singular
  • attachment
  • comments_popup

Пример использования такого фильтра смотрите в ответе на этот вопрос.

Источник

Создание темы WordPress – single.php

Мы уже говорили о home.php и о том, как этот файл контролирует / отображает ваши последние записи в сокращенном виде. Когда вы нажимаете на какую-либо статью, вы переходите по ссылке на ее полный формат. За его отображение и отвечает single.php. Он содержит много той же информации, которую мы видели в других файлах php, в частности page.php, но я покажу вам, как мы должны немного изменить код, чтобы показать полный контент и несколько полезных элементов, которые вы должны включить в single.php. — файл. Давайте посмотрим на код, который будет отвечать за отображение информации в single.php.

Создание темы WordPress – single.php

single.php

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

Рассмотрим код внимательнее:

В функции the_post_thumbnail () нам нужно передать параметр, который сообщает WordPress, что мы хотим использовать «полную» версию или версию самого большого размера изображения вместо миниатюры. Он будет выглядеть как the_post_thumbnail (’full’).

Самое главное,что нужно запомнить – в single.php не следует использовать the_excerpt () вместо этого используйте the_content (), который будет отображать статью полностью.

Раздел «Об авторе»

В приведенном выше коде создана область, где вы можете показать информацию об авторе. Первый div содержит функцию get_avatar(), которая вытягивает изображение Аватара / профиля, назначенное пользователю. Есть много вариантов, чтобы вытащить аватар для автора, но я использую Gravatar. Поэтому мы запросили Аватар, но как узнать, кто написал статью и какой аватар вытащить? Для этого мы должны передать параметр get_the_author_meta (), чтобы WordPress связался с автором, который написал статью. Вещи еще не совсем связаны, нам нужно передать параметр в get_the_author_meta () «email», чтобы WordPress знал, что нужно захватить Аватар с адреса электронной почты, хранящегося в мета автора, связанного с этой статьей.

Затем мы продолжаем использовать get_the_author_meta (), чтобы захватить » dispaly_name» автора, » description», которое показывает биографию автора, и я включила ссылку на веб-сайт автора, передав параметр «user_url». Откуда я беру эти вещи? Где я могу найти биографию и веб-сайт автора? Направьтесь в админ-панель и выберите пользователи. Там вы найдете список всех пользователей, прикрепленных к вашему сайту, и, если вы нажмете на один из них, вы увидите, что вся информация вводится здесь для каждого пользователя/автора. Смотрите скриншот ниже:

Создание темы WordPress – single.php

Вот, как теперь выглядит наша страница записей на сайте.

Создание темы WordPress – single.php

Осталось добавить комментарии после основного текста

Как видим, этот файл не очень сложный и не сильно отличается от page.php. Тем не менее, это основная целевая страница для ваших статей в блоге, и она действительно должна быть продумана для правильной оптимизации вашего сайта. В конечном счете, мы хотим, чтобы веб-сайты, которые мы создаем, были интересны пользователю и окупались. Именно в этом файле нужно размещать социальные кнопки, призывы к действию, похожие и популярные статьи. Все это легко сделать с помощью многочисленных плагинов.

Для большинства пользователей WordPress — это черный ящик. Вы помещаете Read more

Создание темы WordPress - functions.php

functions.php файл шаблона функций в WordPress действительно является двигателем вашей Read more

Создание темы WordPress – 404.php, Search.php, and Searchform.php

Сегодня мы поговорим о еще трех файлах, которые, если их Read more

Создание темы WordPress – archive.php, category.php и tag.php

Сегодня речь пойдет об архивах записей, а точнее о файлах Read more

Создание своей темы WordPress – page.php

Файл page.php контролирует то, что отображается на каждой из ваших Read more

home.php, front-page.php и index.php

Сегодня поговорим о трех очень важных файлах: home.php, front-page.php и Read more

Источник

Оцените статью