Wp includes что в этой папке. Можно ли редактировать файлы в папке wp-includes? Разрешения на действия с файлами WordPress

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

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

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

Сделайте бэкап

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

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

1. Перенос сайта без изменения URL

Обычно перенос файлов сайта из корневой директории в подпапку означает, что адрес сайта изменится с http://ваш-сайт.ru на адрес этой папки, например, http://ваш-сайт.ru/abcd-xyz/ , но можно сделать так, чтобы адрес сайта остался без изменений, но файлы находились в новой папке.

Создайте новую папку

Создайте новую папку в корневой папке сайта. Это можно сделать в файловом менеджере на хостинг панели или через FTP.

Создание новой папки на сервере через FTP клиент

Дайте новой папке какое-нибудь уникальное имя, которое непросто угадать. Не называйте папку «wordpress», «wp-core» или что-нибудь подобное. Подберите имя, которое для вас что-нибудь значит, но непросто подобрать хакерам.

Перенесите файлы ядра Вордпресс в новую папку

Перенесите ВСЕ файлы и папки сайта в только что созданную папку.

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

Создайте пустой файл.htaccess

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

Откройте wp-config.php и добавьте эти строки

ближе к концу файла, но перед строкой

Замените abcd-xyz на название своей папки. Если у вас не установлен SSL сертификат, то замените https в обеих строках на http .

Сохраните изменения. Сайт должен быть недоступен. Теперь надо переместить файлы.

Перемещение файлов

Перенесите все файлы и папки из корневой директории в новую созданную папку, в этом примере она называется /abcd-xyz .

Зайдите внутрь этой папки и скопируйте файлы .htaccess и index.php обратно в корневую директорию, откуда вы их только что перенесли. В итоге файлы и index.php должны находиться и в корневой папке сайта и в только что созданной папке /abcd-xyz .

Файл .htaccess может быть невидим, поэтому в настройках файлового менеджера на хостинге или в настройках FTP клиента зайдите в Настройки и поставьте галочку Показывать скрытые файлы и папки .

Если после того, как вы включили опцию Показывать скрытые файлы в корневой папке сайта стали видимыми другие скрытые файлы или папки, перенесите их в новую созданную папку /abcd-xyz .

Редактирование файла index.php

Чтобы сайт начал работать с файлами, находящимися по новому адресу, нужно сделать изменения в файле index.php . Откройте index.php , который находится в корневой папке сайта и найдите эти строки, они находятся ближе к концу файла:

Добавьте адрес новой папки перед /wp-blog-header.php , так что должно получиться:

Замените /abcd-xyz на название вашей папки. Сохраните изменения, загрузите на сервер.

Обновление постоянных ссылок

Зайдите в админку сайта. Теперь URL адрес страницы авторизации должен включать название новой папки.

В этом примере папка называется /abcd-xyz , тогда адрес входа изменится на http://мой-сайт.ru/abcd-xyz/wp-login.php или http://мой-сайт.ru/abcd-xyz/wp-admin.

Зайдите в Настройки Постоянные ссылки и нажмите Сохранить изменения . Это автоматически обновит файл .htaccess и все посты и страницы будут доступны посетителям.

3. Перемещение некоторых папок Вордпресс

Вы можете сделать еще несколько изменений в структуре папок сайта. Для этого понадобится добавить несколько строк кода в файл wp-config.php для каждого следующего шага.

Существует 2 правила, которые нужно соблюдать:

  1. Папку wp-includes можно перемещать в новое место только вместе со всеми остальными файлами и папками, как в примере выше.
  2. Нельзя перемещать папку uploads . Эта папка должна находиться по адресу /wp-content/uploads/ , но ее можно переименовать.

С этими папками можно делать изменения при помощи кода в wp-config.php :

  • wp-content
  • plugins
  • uploads (только переименование)

Когда будете делать изменения с папками wp-content и plugins , добавляйте код в wp-config.php до строки

с папкой uploads — после этой строки.

WP-Content

Вы можете создать новую папку в корневой папке сайта и переместить в нее папку wp-content . После этого откройте wp-config.php и добавьте этот код:

Замените newfolder на название новой папки. Замените мой-сайт.ru на название вашего сайта, и https на http , если у вас не установлен SSL сертификат.

Если вы хотите перенести wp-content в папку, которая находится не в корневой папке сайта, то замените /newfolder/ на ваш адрес.

Plugins

Создайте новую папку, перенесите в нее папку plugins . Добавьте этот код в wp-config.php :

Замените add-folder на название новой папки. Замените мой-сайт.ru на название вашего сайта, и https на http , если у вас не установлен SSL сертификат.

Если у вас появилась проблема совместимости с плагинами, добавьте эту строку:

Замените add-folder на название новой папки.

Uploads

Чтобы переименовать папку uploads , откройте wp-config.php , спуститесь в самый низ файла, ниже строк «Это все, дальше не редактируем», и найдите эти 2 строки:

Над строкой require_once(ABSPATH . "wp-settings.php"); добавьте

Папка Uploads всегда относительна к ABSPATH, поэтому слеш перед wp-content/media не требуется. Замените media на новое название папки uploads . В итоге должно получиться:

Сохраните wp-config.php .

Если вы решили изменить название папки uploads , то вам нужно изменить текущее название папки на сервере.

Зайдите на сервер по FTP или через хостинг-панель и измените название папки uploads на то имя, которые вы дали этой папке в файле wp-config.php .

Заключение

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

Для более подробной информации читайте статью Размещаем WordPress в отдельном каталоге (рус .) в документации Вордпресс.

В этом посте речь пойдет о том, какие бывают названия у файлов темы 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 имеет четко предопределенную структуру каталога, в котором центральные папки – это wp-content, wp-admin и wp-includes.

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

  • Владелец – прямое владение;
  • Группа – владение через вхождение в группу;
  • Другие – отсутствие владения и группы.

Пользователи веб-сервера и их группы

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

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

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

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

Разрешения на действия с файлами WordPress

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

  • 6 – действия для владельца;
  • 6 – действия для группы;
  • 4 – действия для других типов.

При этом, каждое значение указанных цифр определяет все возможности, которые имеет данный тип пользователей. В случае с 664, 6 – это только чтение и запись, а 4 – только чтение.

Каталоги

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

  • Читать – просматривать содержимое каталога;
  • Писать – создавать новые и удалять существующие (при этом, права для каталога распространяются на все, что в нем содержится);
  • Выполнять – заходить в каталоги (например, воспользовавшись командой в терминале).

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

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

Cpanel вашего хостинга обеспечивает интерфейс, в котором есть возможность устанавливать любой уровень доступа для хранящихся ресурсов. Чаще всего, это можно сделать простым выбором конкретного файла и нажатием «Изменить разрешения». Если вы имеете дело с терминалом, то проще будет применять специальную команду chmod. Она выглядит так: chmod 644

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

  • Поставить на все файлы 664;
  • На все папки 775;
  • wp-config.php должен быть только 600.

Вот, что получится:

  • Аккаунты смогут прочитать и изменить файлы;
  • Сам движок сможет создавать, изменять или удалять любые файлы;
  • wp-config.php будет полностью защищен от посторонних глаз.

Имейте ввиду, что вопреки стандартной конфигурации ВордПресс, какой-то конкретный сервер может быть строже, чем остальные, и не позволит выставить 600 на wp-config.php. Но вы можете указать ему более мягкое 640, а если это не сработает, то даже 644.

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

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

Заключение

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

Хотите больше узнать о файловой структуре 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 и их работе на вашем сайте? Задайте вопрос в разделе комментариев ниже!

Статьи по теме: