Настройка оборудования и программного обеспечения

Можно ли редактировать файлы в папке wp-includes? Понимание внутреннего функционирования WordPress Структура вордпресс.

Права доступа, устанавливающиеся на файлы и папки, принадлежащие системе управления контентом 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, но это уже будет несколько сложнее.

Здравствуйте, уважаемые читатели! Сегодня я решил затронуть очень важный вопрос алгоритма действий 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 отображает страницу, он использует шаблоны, чтобы определить, как всё должно выглядеть. Более того, 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 папок, уделяя особое внимание корневым файлам, на основе которых собственно и работает ваш сайт.

Структура директорий WordPress

Файловая структура WordPress очень проста. У вас есть папка public_html , где находятся как правило три ключевые папки, а так же множество других важных файлов, включая wp-config.php и .htaccess

Чтоб получить доступ к файлам и папкам, вы можете использовать файловый менеджер cPanel от вашего хостинг-сервиса или любой обычный

Для этого обзора мы будем использовать самый популярный ftp-клиент — FileZilla. Вот как должна выглядеть папка public_html внутри:

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

# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress

Затем, есть файл , который по умолчанию представляет вашу домашнюю страницу, если, конечно, он не замещен страницами типа front-page.php или home.php :

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

// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define("DB_NAME", "notarealname"); /** MySQL database username */ define("DB_USER", "notarealuser"); /** MySQL database password */ define("DB_PASSWORD", "notarealpassword"); /** MySQL hostname */ define("DB_HOST", "localhost");

Другие примечательные файлы в этой директории – это wp-activate.php , и wp-signup.php , которые все вместе отвечают за регистрацию, авторизацию и процесс подтверждения пользовательской регистрации. Файл wp-comments-post.php отвечает за функцию комментирования и предотвращение дупликации контента, в то время как wp-settings.php отвечает за установку некоторых WordPress-переменных.

Как понятно из названия папки, здесь лежит инструментарий админа. Например, admin.php (сердце данной папки) позволяет вам связать инсталляцию с базой данных, отображает панель управления WordPress и предлагает прочие ключевые функции, такие как, например, проверка того, является ли данный пользователь администратором. Если пользователь является админом, то включается использование файла wp-load.php , который в свою очередь загружает файл wp-config.php :

/** * In WordPress Administration Screens * * @since 2.3.2 */ if (! defined("WP_ADMIN")) { define("WP_ADMIN", true); } if (! defined("WP_NETWORK_ADMIN")) define("WP_NETWORK_ADMIN", false); if (! defined("WP_USER_ADMIN")) define("WP_USER_ADMIN", false); if (! WP_NETWORK_ADMIN && ! WP_USER_ADMIN) { define("WP_BLOG_ADMIN", true); } if (isset($_GET["import"]) && !defined("WP_LOAD_IMPORTERS")) define("WP_LOAD_IMPORTERS", true); require_once(dirname(dirname(__FILE__)) . "/wp-load.php");

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

Что касается других важных папок внутри wp-admin , то images заполнены картинками, которые используются в административной панели WordPress, css и js – это «дома» для CSS-кода и JavaScript-скриптов, а network включает PHP-файлы, необходимые для работы мультисайтовости WordPress

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

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

Если у вас возникли какие-то , то следует воспользоваться FTP-доступом для отключения расширений. Сделать это можно удалив или просто временно переименовав папку с конфликтным плагином.

Так же, как и в случае с плагинами, каждая тема имеет собственные подпапки. Если мы откроем папку с любой темой, то увидим там множество PHP-файлов, которые все вместе создают внешний вид и структуру вашей темы. Возьмем знаменитую тему Divi от Elegant Themes в качестве примера, в главной папке которой мы найдем файлы , a functions.php , a sidebar.php , и style.css , среди остальных. Divi также имеет отдельные папки для css, картинок и js темы, что весьма стандартно для большинства качественных тем. Но, как бы то ни было, некоторые другие папки достаточно уникальны, к примеру, epanel и et-pagebuilder :

Еще одна папка – это wp-includes , и она довольно большая. wp-includes содержит все те файлы, которые не вошли в описанные ранее папки. Условно говоря, именно благодаря этой папке сайт работает как часы.

Папка так важна, потому что здесь находится большинство файлов WordPress-ядра. Новая инсталляция WordPress содержит 140 различных файлов в главной директории и 14 разных папок (на момент написания статьи), включая сертификаты, шрифты, js и виджеты.

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

/** * Convert given date string into a different format. * * $format should be either a PHP date format string, e.g. "U" for a Unix * timestamp, or "G" for a Unix timestamp assuming that $date is GMT. * * If $translate is true then the given date and format string will * be passed to date_i18n() for translation. * * @since 0.71 * * @param string $format Format of the date to return. * @param string $date Date string to convert. * @param bool $translate Whether the return date should be translated. Default true. * @return string|int|bool Formatted date string or Unix timestamp. False if $date is empty. */ function mysql2date($format, $date, $translate = true) { if (empty($date)) return false; if ("G" == $format) return strtotime($date . " +0000"); $i = strtotime($date); if ("U" == $format) return $i; if ($translate) return date_i18n($format, $i); else return date($format, $i); }

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

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

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

Информацию перенес из записи "WordPress заметки, хитрости и хаки ", которая настолько разрослась, что ее нужно уже дробить.

  • Администратор (Administrator) - абсолютный доступ к управлению темами, пользователями, плагинами, настройками, страницами, записями, категориями, комментариями, экспорт-импорт контента.
  • Редактор (Editor) - редактирование, создание, удаление своего и чужого контента, модерация комментариев, редактирование категорий, удаление, редактирование, публикация своих и чужих страниц, записей, загрузка файлов.
  • Автор (Author) - создание, редактирование, публикация и удаление только своего контента - записей. Не может создавать страницы. Имеет права на загрузку изображений, файлов и любых материалов.
  • Участник (Contributor) - может добавлять новый контент - запись, без права публикации. Может редактировать и удалять свои черновики. Не может добавлять изображения к записи, только через использование HTML кода, в котором будет ссылка на изображение. Участники могут также видеть записи в консоли.
  • Подписчик(Subscriber) - можно разрешить подписчикам видеть приватные записи и страницы без дополнительных плагинов или кода.

Структура таблиц в базе данных wordpress:

  • wp_commentmeta – для метаданных комментариев
  • wp_comments – комментарии
  • wp_links – устарела; хранит информацию, введенную в раздел ссылок WordPress
  • wp_options – все, что находится в разделе Параметры панели администратора, хранится в этой таблице, настройки сайта
  • wp_postmeta – метаданные записей
  • wp_posts – записи, страниц, их ревизии и навигационные пункты
    • id - записи, страницы, ревизии
    • post_author - id пользователя - автора.
    • post_date - дата поста
    • post_date_gmt - дата поста в GMT
    • post_content - содержимое поста
    • post_title - title поста
    • post_excerpt – описание поста
    • post_status – статус поста: publish, draft, auto-draft, inherit
    • comment_status – "open" если комментирование поста разрешено и "closed" если запрещено.
    • ping_status
    • post_password - пароль для чтения поста, если он защищен паролем
    • post_name - алиас поста, который будет использоваться в ЧПУ ссылках.
    • to_ping
    • pinged
    • post_modified - дата последней модификации поста
    • post_modified_gmt - дата последней модификации поста в GMT
    • post_content_filtered
    • post_parent - id родительской записи поста, если родителя нет, то значение 0
    • guid – URL записи в виде http://сайт/?p=id для постов или http://сайт/category/test/name - для страниц
    • menu_order – ноль для поста, порядковый номер страницы, используется для определения порядка вывода страниц
    • post_type - тип записи, может быть: post - запись, page - страница, revision - сохраненная версия страницы или записи, attachment - медиа, например страница изображения
    • post_mime_type
    • comment_count - количество комментариев к посту
  • wp_terms – в основном содержит информацию по термам/таксономиям (рубрика, рубрика ссылок, метка, меню)
    • term_id - id терма (например категории)
    • name - имя терма
    • slug - как терм будет писаться в ссылке
  • wp_term_relationships – отношения между записями и рубриками, метками и прочими таксономиями
    • object_id - id записи, ссылки
    • term_taxonomy_id - id рубрики или другого какого-либо терма таксономии (рубрика, рубрика ссылок, метка)
    • term_order - используется для сортировки
  • wp_term_taxonomy – описывает какого типа тот или иной терм
    • term_taxonomy_id - id таксономии
    • term_id - id терма
    • taxonomy - тип таксономии: category, link_category, post_tag, nav_menu
    • parent - родительский терм, если например категория вложена в категорию
    • count - количество объектов (записей, ссылок) связанных с таксономией
  • wp_usermeta – права пользователей и дополнительная информация о зарегистрированных пользователях
  • wp_users – все пользователи

Структура файлов Wordpress

Корневой каталог содержит следующие папки и файлы папки:

  • wp-config.php - в этом php файле прописаны имя и пароль базы данных, кодировка, префикс таблиц, язык, размер кеша, в файл можно добавить много других параметров.
  • Файл.htaccess - файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах.
  • wp-includes - ядро wordpress. При каждом обновлении папка перезаписывается.
  • wp-admin - CSS, JavaScript и PHP файлы, которые обеспечивают работу админ-консоли. При каждом обновлении папка перезаписывается.
  • wp-content - содержит пользовательские папки и состоит из папок:
    • languages - содержит файлы перевода движка в формате.mo и.po
    • plugins - установленные плагины
    • themes - установленные шаблоны, должен быть установлен хотя-бы один шаблон. Может содержать следующие папки и файлы:
      • index.php - шаблон главной страницы сайта, также подгружает файл сайдбара. Обязательный файл, в корне папки шаблона
      • style.css - обязательный файл, отвечает за css-стили шаблона, в корне папки шаблона
      • header.php – файл, отвечающий за вывод данных в разделе и верхнего меню
      • sidebar.php – файл отвечает за генерацию боковых (дополнительных) колонок. В основном тут виводятся рубрики, теги, банеры.
      • footer.php – файл отвечает за вывод подвала, нижнего меню, копирайтов и закривает HTML-теги
      • single.php – отвечает за отображение отдельных постов.
      • page.php – отвечает за отображение отдельных страниц (например, «Контактв», «Про нас» и т.д.)
      • archive.php – отвечает за вывод страницы архива записпей
      • category.php – формирует страницы, которая выводит публикации по категориям
      • tag.php – шаблон страницы, которая выводит список публикаций по тегам
      • comments.php – файл описывает отображение комментариев
      • functions.php – дополнительный файл с PHP-кодом, благодаря которому можно включать или отключать, добавлять или убирать определенный функционал. В этот файл часто добавляется пользовательский код, если нужно что-то усовершенствовать.
      • /css/ - в этой папке могут находится дополнительные css-файлы
      • /js/ – папка с файлами JavaScript
      • /images/ - папка содержит встроенные в шаблон изображения
      • /languages/ - папка содержит файлы переводов темы
    • uploads - медиа-файлы: изображения, музка, документы и тд.

Теги шаблонов в WordPress

Теги шаблонов - это PHP-функции в WordPress для вывода информации или для настройки блога, например wp_list_pages() - выводит список страниц в виде ссылок.

В самом wordpress теги шаблонов описаны в следующих файлах:

  • wp-includes/author-template.php - теги шаблонов, связанные с автором
  • wp-includes/bookmark-template.php - теги шаблонов, связанные с закладками
  • wp-includes/category-template.php - теги шаблонов обо всех условиях и таксономии, в том числе категориях и тегах
  • wp-includes/comment-template.php - файл для тегов шаблонов отдела комментариев
  • wp-includes/link-template.php - теги шаблонов для ссылок (постоянные ссылки, ссылки прикрепления, архивные ссылки и т.д.)
  • wp-includes/nav-menu-template.php - теги шаблонов для меню навигации
  • wp-includes/post-template.php - теги шаблонов, связанные с постами
  • wp-includes/post-thumbnail-template.php - файл для тегов шаблонов, связанных с миниатюрами записей
  • wp-includes/general-template.php - файл для других тегов шаблонов, которые могут использоваться где угодно
Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!