Основы шаблонов. Можно ли редактировать файлы в папке wp-includes? В какой папке находятся функции ядра wordpress

Здравствуйте, уважаемые читатели! Сегодня я решил затронуть очень важный вопрос алгоритма действий WP при взаимодействии с шаблонами. Это актуально, поскольку понимание нюансов работы движка с файлами, отвечающими за составные части , позволит быстро и корректно производить необходимые изменения.

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

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

Как установить тему и редактировать шаблоны WordPress

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

Однако, если вы желаете постигнуть всю суть работы с сайтом и получить дополнительные знания, то стоит попробовать загрузить и установить для начала тему с помощью какого-нибудь ФТП клиента (я, например, использую ).

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

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

  • Распакуйте архив, кликнув по нему правой кнопкой мыши и выбрав соответствующую операцию;
  • Получив доступ по FTP к файлам вашего сайта, загрузите папку, полученную после разархивирования, на хостинг в директорию (папку) themes

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

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

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


А вот какой интерфейс для редактирования предлагает Нотпад плюс плюс:


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

И еще. Редактирование шаблонов WordPress я советую осуществлять на локальном сервере, то бишь на своем компьютере (здесь Денвер, а еще лучше, Open Server вам в помощь). Сделали все нужные изменения, протестировали, а затем уже заливаете файлы на хостинг. Эксперименты с "живым" сайтом могут дорого стоить.

Файловая структура шаблонов страниц

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

Ваш_сайт/wp-content/themes/название_вашей_темы

Для моего блога в папку с одной из установленных тем этот путь выглядит так:

Сайт/wp-content/themes/country

При просмотре в окне редактора Нотпад++ папка со всеми файлами вашей темы WordPress будет выглядеть следующим образом:

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

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

Кроме того, есть шаблоны, которые нужны для конструирования отдельных частей, отображаемых на всех страницах сайта. Это шапка, или хидер (header.php), левая и/или правая колонка, иначе сайдбар (sidebar.php), подвал, или футер (footer.php). Схематически такую конструкцию с областями страницы можно представить так:


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

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

Иерархия шаблонов WordPress и последовательность вывода страниц

Я же попробую кратко пробежаться по пунктам и объяснить, в какой последовательности выводит ту или иную вебстраницу WordPress, учитывая ее место в иерархической шкале приоритетов.

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

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

  1. Home (главный приоритет);
  2. Index.

Если конструируется отдельная статья блога, шаблоном которой по умолчанию является Single , то последовательность обращения будет такой:

  1. Single-{post_type}. Скажем, если в конкретном случае тип записи product, то WP будет обращаться к шаблону single-product.php;
  2. Single;
  3. Index.

Для статической страницы Page иерархия следующая:

  1. Custom template (пользовательский шаблон, который создан специально для конкретной вебстраницы);
  2. Page-{slug}. Здесь slug - короткое название (псевдоним) страницы. Например, если в составе темы присутствует файл с названием page-recent-news, то WP обратиться к нему;
  3. Page-{id}. Если вебстраница отождествляется по конкретному идентификатору (id) 12, то именно она будет следующей по иерархии, ежели отсутствуют указанные выше;
  4. Page;
  5. Index.

Чтобы вывести страницу рубрик, Вордпресс предпримет поиск специального файла, затем будет искать по id. Если таких шаблонов не существует, то преимущество получит общий шаблон Category , далее по убывающей Archive и Index:

  1. Category-{slug};
  2. Category-{id};
  3. Category;
  4. Archive (архив);
  5. Index.

Аналогичная картина вырисовывается и для тега (метки). В первую очередь специальный шаблон, далее на основе id, после чего Tag , Archive и Index:

  1. Tag-{slug};
  2. Tag-{id};
  3. Archive;
  4. Index.
  1. Author;
  2. Archive;
  3. Index.

Продолжаем, осталось немного. Существует возможность наличия страницы временного архива Date . В этом случае WP после неудачи будет искать Archive, после него Index:

  1. Date;
  2. Archive;
  3. Index.

На подавляющем большинстве ресурсов используется страница поиска, которая определяется шаблоном Search . В случае его отсутствия - файл основного шаблона Index:

  1. Search;
  2. Index.
  1. Index.

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

  1. Image, video, audio;
  2. Application;
  3. Attachment;
  4. Index.

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

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

Об иерархии файлов темы я упоминал в статье «Условные теги в WordPress» . А ниже тоже самое, только подробнее и понятнее.

Подключения файлов темы (теория)

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

Например, мы заходим на страницу рубрики «Плагины» с ярлыком plugins и id 25 - http://example.com/category/plugins . Тогда для генерации кода этой страницы WordPress будет по очереди проверять наличие следующих файлов (проверка прервется на первом существующем файле):

  • category-plugins.php
  • category-25.php
  • category.php
  • archive.php
  • index.php

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

Еще одна схема, возможно она понятнее (старая):

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

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

Ниже указана страница сайта и соответствующий ей список PHP файлов. Такие файлы должны находится в корневой папке темы.

Записи

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

  • {любое_название}.php (когда используется шаблон страницы)
  • page-{ярлык_записи}.php
  • page-{ID_записи}.php
  • page.php
  • singular.php
  • index.php

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

  • single-post-{ярлык_записи}.php
  • single-post.php
  • single.php
  • singular.php
  • index.php

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

  • {любое_название}.php (для древовидного типа с поддержкой шаблонов . С WP 4.7)
  • single-{post_type}-{ярлык_записи}.php
  • single-{post_type}.php
  • single.php
  • singular.php
  • index.php

Вложение

  • {начало_MIME_типа}.php
  • {конец_MIME_типа}.php
  • {начало_MIME_типа}-{конец_MIME_типа}.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 .

Архивы

404 страница

  • 404.php
  • index.php

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

  • search.php
  • index.php

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

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

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

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

  • home.php
  • index.php

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

Шаблоны встраивания используются когда запрашивается запись через REST API. Встраивания появились в версии 4.5 и позволяют встраивать ваши записи в чужие сайты. См. get_post_embed_url()

  • embed-{post-type}-{post_format}.php
  • embed-{post-type}.php
  • embed.php

Чтобы изменить только контент встраивания, можно в теме создать файл 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 должна закончиться и мы «улетаем» на какую-то другую страницу.

Хотите больше узнать о файловой структуре WordPress? А также о ядре программного обеспечения WordPress, темах, плагинах и обо всех пользовательских загрузках, которые хранятся на сайте? Я расскажу обо всем этом в данной статье.

Зачем нужно знать файловую структуру WordPress?

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

В этой статье вы узнаете:

  • Какие файлы и каталоги являются корневыми.
  • Где WordPress хранит изображения и медиа загрузки.
  • Где WordPress хранит темы и плагины.
  • Где хранятся файлы конфигурации.

А теперь давайте перейдем непосредственно к изучению файловой структуры WordPress.

Доступ к файлам и каталогам WordPress

Для начала зайдите в WordPress сервер через FTP-клиент. Для более подробной информации читайте инструкцию, как использовать FTP для загрузки файлов WordPress (в процессе написания). Более простая альтернатива FTP – это File Manager (веб-приложение со встроенной панелью администрирования cPanel). Как только вы зайдете в WordPress через FTP или File Manager, вы увидите структуру файлов и каталогов примерно таким образом:

Красной рамкой выделены корневые файлы WordPress. Именно от этих файлов зависит корректная работа сайта, ни в коем случае ничего в них самостоятельно не меняйте.

Вот список этих файлов и папок в корневом каталоге:

  • wp-admin
  • wp-includes
  • wp-activate.php
  • wp-blog-header.php
  • wp-comments-post.php
  • wp-config-sample.php
  • wp-cron.php
  • wp-links-opml.php
  • wp-load.php
  • wp-login.php
  • wp-mail.php
  • wp-settings.php
  • wp-signup.php
  • wp-trackback.php

Файлы конфигурации

В корневом каталоге WordPress хранятся некоторые специальные файлы конфигурации. В этих файлах содержатся важные параметры, специфичные для вашего WordPress сайта.

  • .htaccess– файл конфигурации сервера, WordPress использует его для управления постоянными ссылками и .
  • wp-config.php– сообщает WordPress, как подключиться к базе данных. Он также устанавливает некоторые важные настройки.
  • index.php – индексный файл, который в основном загружает и инициализирует все WordPress файлы при запросе страницы пользователем.

Иногда возникает необходимость редактирования wp-config.php или.htaccess файлов. Будьте при этом предельно внимательны и осторожны. Любая незначительная ошибка может сделать ваш сайт недоступным. Именно поэтому перед тем как что-либо здесь менять обязательно сделайте резервные копии этих файлов. Если в корневом каталоге вы не видите файл.htaccess, то прочтите инструкцию, почему в корневом каталоге не виден файл.htaccess (в стадии написания).

В зависимости от установки WordPress в корневом каталоге у вас могут быть или не быть следующие файлы:

  • robots.txt – содержит все инструкции для ползающих поисковых ботов
  • Favicon.ico – файл favicon иногда генерируется самими хостерами.

В папке wp-content вордпресс хранит все загрузки, плагины и темы.

Давайте заглянем внутрь папки wp-content, чтобы понять, как она работает и что здесь можно делать.

  • themes
  • plugins
  • uploads

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

Все загруженные и установленные плагины WordPress хранит в папке / wp - content / plugins / . Не рекомендуется редактировать файлы плагина, если вы только сами не создали плагин для нужд сайта.

Во многих WordPress инструкциях можно увидеть коды, которые вставляются на сайт. Лучше всего их добавлять в файл дочерней темы functions.php или в плагин site-specific.

WordPress хранит все изображения и медиа загрузки в папке / wp - content / uploads / . По умолчанию они хранятся в папках по принципу / year / month / . Каждый раз при бэкапе сайта, не забывайте об этой папке.

Вы можете скачать копии ядра WordPress, темы и плагины с их источников, но если вы потеряете папку закачек, то ее будет сложно восстановить без резервной копии.

В каталоге wp-content хранятся также другие стандартные папки, как например:

  • languages – в этой папке хранятся все языковые файлы не англоязычных сайтов.
  • upgrade – это временная папка, создаваемая WordPress при обновлении версии сайта.

В wp-content также хранятся папки, которые создаются плагинами. Например, на скриншоте выше представлена папка галереи, созданная плагином . В некоторых из этих папок могут храниться очень важные файлы. Например, в папке «gallery» хранятся все изображения. Всегда делайте резервные копии подобных папок, чтобы избежать потери важных данных.

Другие папки содержат файлы, которые можно смело удалять. Например, W3 Total Cache или WP Super Cache в своих папках могут хранить кэшированные файлы.

Вот и все. Надеюсь, эта статья помогла вам разобраться в файловой структуре WordPress.

Не забывайте подписываться на мой YouTube канал, находите меня в ВКонтакте и в Твиттере.

Если вы хотите использовать весь потенциал WordPress, то вам непременно нужно узнать больше о шаблонах. Когда WordPress отображает страницу, он использует шаблоны, чтобы определить, как всё должно выглядеть. Более того, CMS придерживается строгой иерархии, благодаря которой всё выглядит организованно и слаженно. Зная, что такое иерархия шаблонов WordPress и как она работает, вы сможете более точно настроить тему своего сайта.

Иерархия шаблонов WordPress состоит из семи основных категорий:

  1. Главная страница сайта
  2. Одиночная запись
  3. Статическая страница
  4. Страница категорий и тегов
  5. Пользовательские типы записей
  6. Страница результатов поиска
  7. Страница 404 (ничего не найдено)

В этом руководстве мы познакомим вас с шаблонами WordPress и их иерархией. Мы также объясним, как темы используют файлы шаблонов для отображения страниц вашего сайта. Перед нами огромное поле для деятельности, поэтому давайте приступим к его обработке!

Введение в файлы шаблонов (и как они соотносятся с темами WordPress)

Когда вы создаёте простой статический веб-сайт, вы обычно просто используете HTML и CSS для рендеринга и настройки его внешнего вида. WordPress, с другой стороны, намного мощнее. Платформа построена на языке PHP , и она использует несколько специальных файлов.php для определения того, как формируются отдельные части ваших страниц сайта.

Например, посмотрите на правую часть этой публикации. Есть боковая панель, указывающая на другие похожие публикации из нашего блога. Когда ваш браузер сказал WordPress загрузить эту статью одновременно с этим было подтянуто несколько файлов-шаблонов , один из которых называется sidebar.php. Этот файл содержит информацию о том, как отобразить боковую панель, которую вы видите сейчас, и какие элементы она должна включать:

Боковые панели – это, конечно, только одна из частей полной страницы. Для большинства страниц WordPress требуется несколько файлов шаблонов для работы, в том числе:

  • index.php
  • header.php
  • sidebar.php
  • footer.php
  • functions.php
  • single.php
  • comments.php

Надо отметить, что это не все файлы-шаблоны, которые вы можете найти в WordPress. header.php , sidebar.php и footer.php , особенно важны, поскольку они известны как ‘часть шаблона’ («template partials’). Это означает, что они могут быть встроены в другие шаблоны.

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

Когда дело доходит до выбора шаблонов для каждой страницы, первое, что WordPress делает – это проверяет вашу текущую тему. Каждая тема включает в себя собственный набор файлов-шаблонов, который будет иметь приоритет над всеми остальными. Это часть того, что мы называем ‘иерархией шаблонов WordPress’ в действии, что мы и рассмотрим в следующем разделе.

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

Как работает иерархия шаблонов WordPress

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

Например, если вы попытаетесь загрузить страницу для абстрактной категории хостинга , то вот что будет происходить в фоновом режиме:

  1. WordPress будет искать файл шаблона под названием category-hosting.php в каталоге текущей темы.
  2. Если файл category-hosting.php не будет найден, WordPress будет искать тот, который использует идентификатор категории, например, category-2.php .
  3. Если WordPress не найдёт ни одного из этих параметров, он будет искать общий файл category.php .
  4. Если же и файл с именем category.php не будет найден, WordPress откатится назад и будет искать шаблон archive.php .
  5. Наконец, если все остальные действия закончатся безуспешно, платформа загрузит файл index.php вашей темы и будет использовать его в качестве шаблона страницы.

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

Объяснение иерархии шаблонов WordPress (7 категорий)

Страницы каждого сайта на WordPress можно разделить на семь категорий. Каждая из этих категорий имеет встроенную иерархию, по каждой из которой мы вас проведём.

1. Главная страница сайта

Прежде всего, давайте поговорим о первой (главной, домашней) странице вашего сайта. Когда WordPress загружает главную или домашнюю страницу, первое, что он будет искать, это файл front-page.php . Если этот файл недоступен, платформа вернётся к home.php . Если оба файла будут отсутствовать, WordPress обратится к неизменно надёжному файлу index.php , который всегда есть (иначе ваша тема не будет работать).

Иными словами, данная иерархия подразделяется так:

  1. front-page.php
  2. home.php
  3. index.php

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

2. Одиночная запись

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

Вот как работает иерархия одиночных записей:

  1. single-{post-type}.php
  2. single.php
  3. singular.php
  4. index.php

Вероятно, вы не узнаете некоторые из этих файлов шаблонов, поэтому давайте дадим им некоторый контекст. Вначале списка single-{post-type}-{slug}.php . Более понятным примером может быть single-product-ca-12.php , в случае интернет-магазина. Иными словами, WordPress будет искать уникальный файл шаблонов для каждого загружаемого вами сообщения в пределах своей конкретной категории. Если платформа не может найти подходящий шаблон, она вернётся на шаг назад к single-{post-type}.php и так далее, пока неминуемо снова не достигнет index.php .

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

3. Статическая страница

Статически страницы попадают в отдельную категорию в WordPress. Например, возьмите сайт Hostinger в целом. https://www.сайт – это наша главная страница, и при обращении к ней загружается шаблон front-page.php . Другие разделы сайта, такие как https://www.сайт/kupit-hosting-sajtov, относятся к категории статических страниц.

Статические страницы реализуют такую иерархию:

  1. Пользовательский файл шаблона
  2. page {slug}.php
  3. page-{id}.php
  4. page.php
  5. singular.php
  6. index.php

Обратите вимание, что первый пункт в списке не является именем файла. Это потому, что WordPress может распознавать несколько типов контента как статические страницы. Например, если вы имеете дело с записью, WordPress по умолчанию будет использовать иерархию, о которой мы говорили ранее. Статические страницы, с другой стороны (такие как, /kupit-hosting-sajtov), будут перемещаться прямо на page-slug.php . В нашем примере это будет page-kupit-hosting-sajtov.php (если такой файл существует).

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

4. Страницы категорий и тегов

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

  1. category {slug}.php
  2. category-{id}.php
  3. category.php
  4. archive.php
  5. index.php

Эта иерархия работает так же, как для одиночных записей и статических страниц. WordPress будет искать шаблон, который является уникальным для категории, которую вы хотите загрузить, сначала по имени файла, которое включает его специальную часть адреса (slug), а затем, перейдёт к его идентификатору. Если этот подход завершится безуспешно, он будет работать с category.php , а затем archive.php . В конце концов, ваш архив WordPress должен включать сообщения из всех ваших категорий, поэтому имеет смысл включить его в эту конкретную иерархию.

В этом разделе мы также упоминаем теги WordPress, потому что и категории и теги являются таксономическими элементами. Кроме того, их иерархии в точности совпадают, за исключением того, что вы заменяете все экземпляры категории ‘category’ на тег ‘tag’, и тогда – category-{slug}.php становится tag-{slug}.php и т.д.

5. Произвольные (пользовательские) типы записей

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

Однако создание произвольных типов записей является темой другого руководства. На данный момент достаточно сказать, что у этих типов контента есть своя иерархия:

  1. archive-{post_type}.php
  2. archive.php
  3. index.php

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

6. Страницы результатов поиска

  1. search.php
  2. index.php

В этом случае WordPress сразу перейдёт к index.php , если не может найти настраиваемый шаблон для вашей страницы результатов поиска. Тем не менее, большинство современных тем будут включать в себя некоторую настройку для вашей страницы поиска.

7. Страница 404 (ничего не найдено)

Страница 404 – это страница ошибки. Обычно вы надеетесь, что ваши пользователи никогда не увидят эти страницы, но позаботиться о них всё же важно на всякий случай. Изначально WordPress не включает настраиваемые страницы ошибок, но их достаточно легко установить.

Если вы создадите собственную страницу ошибок, WordPress будет искать её сначала, как показано в этой иерархии:

  1. 404.php
  2. index.php

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

Иерархия шаблонов WordPress в действии

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

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

  • index.php
  • home.php
  • page.php
  • archive.php
  • category.php

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

Ниже приведены примеры других страниц, которые вы можете посетить, и файлы шаблонов, которые они будут использовать:

  • Случайная запись загрузила бы index.php в качестве файла шаблона, потому что в рассматриваемой иерархии нет других шаблонов.
  • Любая посещаемая категория будет использовать файл шаблона category.php , поскольку такой шаблон WordPress есть в наличии. Если бы его не было, WordPress вместо него загрузил бы archive.php .
  • Ваши статические страницы будут использовать page.php , но они будут по умолчанию переходить к index.php , если первый файл не будет доступен.
  • Поскольку среди шаблонов нет страницы с ошибкой, WordPress будет использовать index.php в качестве шаблона в этой ситуации.

Можно приводить много примеров, но данный пример должен дать вам представление о том, как подобный сайт будет работать. Какие шаблоны WordPress будут использовать, определяется настройками темы и иерархиями, о которых мы говорили ранее. Надеемся, что данное руководство послужит хорошей отправной точкой, если вам понадобится работать с иерархией шаблонов WordPress в будущем.

Заключение

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

У вас есть вопросы об иерархия шаблонов WordPress и их работе на вашем сайте? Задайте вопрос в разделе комментариев ниже!


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

Знание и понимание файловой структуры WordPress в общем случае поможет быстро найти нужный файл – если, например, нужно самостоятельно внести изменения в тему WP, а в более частном (пусть это никогда не пригодится) заметить вредоносные внедрения в структуру вашего сайта.

Итак, заходим на хостинг – не в админку, а именно на хостинг, и через файловый менеджер открываем папку, в которой установлен WP. Найти ее не должно составить труда – название было определено при установке WopdPress. Теоретически зайти можно и через FTP, но для ознакомительных целей этого делать не стоит.

Первое место, куда мы попадаем – корневой каталог WordPress . На фрагменте скриншота приведен пример из панели управления timeweb. Вы можете увидеть что-то другое с точки зрения дизайна, но структура будет одинакова.

Папки

Как правило, в корневом каталоге находятся три папки – wp-content, wp-includes и wp-admin, но как видно из картинки, может быть еще одна – cgi-bin – место, где находятся cgi-скрипты, о которых сейчас мы думать не будем.

wp-admin и wp-includes

В директориях wp-admin и wp-includes находятся CSS, JavaScript, и PHP файлы, необходимые для функционирования вордпресс, их НЕ рекомендуется самостоятельно изменять. Если же хочется экспериментов, то не забывайте делать копии, чтобы иметь возможность восстановить рабочий вариант.

содержимое каталога wp-content

wp-content

Файлы темы хранятся в директории /wp-content/themes/ . Их редактировать можно, но этого делать не стоит, так как после обновления все изменения будут потеряны. Надежнее создать дочернюю тему. Если нужно изменить стили, то почти всегда в админке в настройках темы есть возможность добавить свои стили. Их не затронет обновление и, соответственно, ваши труды не пропадут зря.

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

В /wp-content/plugins/ хранятся установленные и загруженные плагины, если они есть. Если же их нет, то ничего страшного, тема может работать и без плагинов.
Файлы плагинов лучше не трогать. Дополнительный код можно добавить в файл functions.php дочерней темы. Не бойтесь создавать дочернюю тему. Страшно только в первый раз. Помните – если что-то пойдет не так, вы всегда можете вернуться к родительской теме и провести работу над ошибками.

В /wp-content/uploads/ хранится загруженный нетекстовый контент – изображения, видео, MP3, PDF-файлы, и т.п. По умолчанию файлы в папке uploads рассортированы по дате загрузки в подкаталоги вида: /год/месяц/ . Важный момент: обязательно делайте бэкап uploads. Многое можно восстановить достаточно просто из исходников, а вот загрузка и восстановление медиа-контента, даже если у вас есть копии, потребует времени. А уж если копии не сохранились, то это настоящая катастрофа. Да, папка uploads создается не во время установки – поначалу ее не будет, она создастся после того, как вы начнете загружать картинки.

Также в директории wp-content есть и другие папки, созданные по умолчанию:

  • languages – здесь находятся переводы для неанглоязычных сайтов в формате.mo и.po.
  • upgrade – временный каталог, создающийся в процессе обновления.

Многие плагины создают свои собственные фолдеры внутри wp-content. Например, посмотрев внимательно, на скриншоте можно увидеть папку конфигурации плагина W3 Total Cache – w3tc-config .

Внимание! если вы увидите в корне сайта каталоги, отличные от перечисленных выше, даже с самыми безобидными на первый взгляд названиями – вроде site, blog, forum и вы точно знаете, что вы их не создавали – это признак тог, что ваш сайт взломан.

Файлы

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

В зависимости от настроек темы, здесь могут находиться также:

  • robots.txt – содержит инструкции для поисковых систем
  • favicon.ico – как нетрудно догадаться, это фавиконка

Перечисленные выше файлы предназначены для обеспечения основных операций WordPress. Наиболее значимые из них – .htaccess и wp-config.php:

  • .htaccess – содержит информацию о конфигурации сервера. Обратите внимание – точка в начале имени говорит о том, что это скрытый файл, поэтому его можно не увидеть чрез FTP без дополнительных настроек.
  • wp-config.php – содержит недоступные из консоли администратора настройки WP, включая настройки для базы данных MySQL, секретные ключи, информацию о префиксе базы данных.

Будьте очень осторожны при редактировании wp-config.php или.htaccess. Небольшая ошибка может привести сайт в нерабочее состоянии или сделать его недоступным.

Совет. Перед редактированием файлов wp-config.php или.htaccess сделайте их копии.