Структура WordPress
Шпаргалка о том, как устроен сайт на Вордпресс.
Корневой каталог WordPress содержит три папки: wp-content, wp-includes и wp-admin вместе с кучей разных PHP файлов, которые требуются для основных операций WP. Наиболее значимым из этих файлов является «wp-config.php». Изменяя этот файл, можно добавить кучу ключевых вариантов настройки WordPress, которые не доступны из консоли администратора. Также в корне сайта лежат и другие системные файлы (например, wp-settings.php, wp-config.php) которые влияют на настройки сайта.
Рассмотрим вкратце анатомию движка ВордПресс и за что отвечают те, или иные файлы и папки.
wp-admin
Эта папка содержит различные файлы, такие как CSS, JavaScript, и PHP, которые обеспечивают функциональность консоли и административной части сайта.
wp-content
Папка wp-content содержит все загруженные пользовательские данные и разделяется на другие вложенные папки:
- languages
- plugins
- themes
- uploads
Папка «languages» содержит файлы переводов и локализации движка в формате .mo и .po. Если вы хотите переводить свой сайт, вам нужно начинать с этой папки.
Каталог «themes» содержит все загруженные темы (шаблоны).
Вы можете загрузить в эту папку много тем, но активировать сможете только одну тему (не считаем некоторые плагины, которые позволяют активировать больше). Кроме того, каталог «themes» не может быть пустым, так как для WordPress необходима по крайней мере одна тема для корректной работы!
По умолчанию папка «themes» уже содержит внутри две темы: Twenty Thirteen и Twenty Fourteen.
Аналогичным образом, «plugins» используется для хранения установленных плагинов на вашем сайте. В отличие от каталога «themes», этот каталог может быть пуст и WordPress будет прекрасно работать без использования каких-либо сторонних плагинов. Вы также можете активировать столько плагинов, сколько необходимо (правда, хорошая практика заключается в установке только необходимых плагинов, поскольку количество установленных плагинов влияет на скорость работы сайта).
Все картинки (и другие медиа-файлы) хранятся в каталоге «uploads», с разбивкой по годам, месяцам и/или дням. Эта папка представляет собой базу данных для всего не-текстового контента: изображения, видео, MP3, PDF-файлы, и т.д.
Сразу после установки WordPress папки «uploads» не будет, она будет создана автоматически после того, как вы начнете загружать медиа-файлы через консоль.
wp-includes
Папка «wp-includes» содержит в себе все основные и необходимые файлы для запуска WordPress через фронтэнд (пользовательский интерфейс). Папка содержит файлы PHP, CSS, JavaScript, и файлы изображений WordPress, которые обеспечивают основные функции программного обеспечения. Другими словами – это ядро движка ВордПресс.
Папки wp-admin и wp-includes являются основными папками WP, поэтому в них желательно ничего не изменять. При каждом обновлении ВордПресс происходят изменения файлов в этих папках, и ваши правки будут утеряны.
Настройка wp-config.php
Перейдем к файлу wp-config.php. wp-config.php — это центральный файл, который содержит все критичные настройки WordPress’а без которых он просто не будет работать. Регулируя эти настройки можно влиять на многие части движка, управление которыми из админки невозможно.
Сразу после установки в этом файле содержится не так много настроек, в основном это доступы к базе данных, язык, безопасность, а также режим работы — продакшен или режим разработчика.
Все указанные настройки можно оставить «как есть» и особо по их поводу не заморачиваться, но я рекомендую добавить в файл два параметра, которые в будущем позволят избежать много головной боли:
Первый параметр запрещает создание ревизий:
define( 'WP_POST_REVISIONS', false );
Второй параметр включает режим кэширования:
define( 'WP_CACHE', true );
Вставить эти две настройки надо сразу после языковых настроек:
Сразу отмечу, что настройку для кэша мы делаем на будущее и пока не установлен какой-то из плагинов кэширования, она не будет иметь никакого эффекта.
Особенно хочу отметить настройку режима работы. Благодаря ей вы всегда сможете узнать в чем у вас проблема, если вы словили «белый экран смерти».
Обычно такое происходит, когда ковыряешь файлы темы или плагинов — WordPress просто падает и без всяких сообщений больше не поднимается, но сделав вот так:
define('WP_DEBUG', true);
вы сразу увидите все сообщения об ошибках, случившихся на вашем сайте. Рекомендую.
Папка wp-content
В этой папке хранятся именно те файлы, которые мы можем изменять. Содержимое этой папки не перезаписывается при обновлении, наоборот, здесь хранится все динамически добавляемые файлы. В этой папке находятся две поддиректории, структура показана ниже:
В папке plugins хранятся плагины (активные и неактивные). Новый плагин можно установить, добавив распакованные файлы архива плагина в эту папку, правда после этого потребуется дополнительная активация из консоли WordPress на странице «Плагины«.
Удалить плагин, уже установленный на сайте, можно через удаление или переименование директории плагина в этой папке. Иногда WordPress перестает загружаться и выдает белый экран, часто причиной этого становятся критические ошибки в некотором плагине. Чтобы восстановить работоспособность сайта достаточно переименовать папку такого плагина и сайт снова заработает.
Каждый плагин либо хранится в своей отдельной папке, либо, если он состоит всего из одного файла, находится прямо в корне папки. Тогда для деактивации последнего плагина нужно переименовать сам файл. Вот пример структуры содержимого папки plugins сразу после установки:
На скриншоте показано два плагина, первый хранится в папке akismet (это плагин для борьбы со спамом в комментариях, он поставляется вместе с ядром WordPress, правда потребуется дополнительная регистрация для активации), а второй файл плагина лежит непосредственно в корне директории и называется hello.php (Привет Долли, пример простейшего плагина WordPress).
В папке themes хранятся, соответственно, все доступные темы, структура папки видна на картинке:
По умолчанию после установки ядра WordPress в этой папке находятся стандартные темы. Я делаю скриншоты со старого архива, поэтому там не хватает последней темы 2015 года. В каждой папке хранится отдельная тема WordPress, имя каждой стандартной темы начинается с приставки twenty, что переводится с английского как 20, а вторая часть — это цифра, соответствующая текущему году, то есть, папка с темой, выпущенной в 2015 году, имеет название twentyfifteen, а в 2014 году — twentyfourteen и так далее.
Чтобы установить новую тему достаточно скопировать .zip архив (темы распространяются в виде архивов) в папку themes и распаковать его. После этого тема появится в консоли WordPress среди прочих доступных тем. Активируется тема из консоли.
Для удаления темы полностью следует удалить папку, соответствующую теме, из директории themes. Для деактивации можно переименовать папку. Для обновления темы — заменить старый архив на новый. Обновление тем с сайта WordPress.org можно осуществлять через консоль, для остальных тем может понадобиться непосредственное копирование и замена старых файлов.
На этом информация об основной структуре файлов ядра WordPress исчерпана. В большинстве случаев нам понадобится редактировать либо файлы темы, либо создавать и редактировать дочернюю тему, либо устанавливать или удалять плагины и темы. Иногда может понадобится отредактировать config.php. Все остальные файлы ядра можно использовать как справочник по программированию, если вы создаете новый плагин. В файлах ядра находится огромное количество хуков, которыми можно пользоваться для модификации поведения ядра.
Еще раз схематическое отображение структуры тех файлов WordPress, которые будут нам полезны в дальнейшем:
— Архив установки WordPress
— — Папка wp-content
— — — Папка plugins
— — — — Папка Плагина 1
— — — — Папка Плагина 2
— — — — …
— — — — Папка Плагина N
— — — — Файла плагина N + 1
— — — Папка themes
— — — — Папка Темы 1
— — — — Папка Темы 2
— — — — …
— — — — Папка Темы N
— Файл wp-config.php
Далее, будет полезно узнать структуру темы WordPress и структуру плагина. Это уже не настолько тривиальная тема, она довольно объемна и затрагивает иерархию шаблонов WordPress, поэтому я опишу структуру в общем виде.
Структура файлов плагина WordPress
Плагин в самом простейшем случае может состоять всего из одного php файла и располагаться в корне директории plugins. Более сложные плагины имеют свою собственную папку, внутри нее лежат php файлы, которые структурированы автором плагина, а потому будут отличаться друг от друга. Вложенные плагины не допускаются ядром (папка одного плагина не может лежать в папке другого плагина). Вот основные файлы и папки:
— readme.txt — информация об использовании;
— .htaccess — разные служебные директивы apache;
— php файлы, содержащие код плагина;
— папка languages — перевод плагина на другие языки.
Структура темы WordPress
Пример структуры каталога темы WordPress приведен на картинке ниже:
Анатомия темы ВордПресс
Теперь от структуры ядра WP перейдем к рассмотрению анатомии темы (шаблона)
Путь к файлам темы следующий /wp-content/themes/название-темы/.
Основная структура папок темы может включать в себя такие папки, как:
- /css/ – файлы стилей CSS, которые использует тема; ВАЖНО: файл style.css должен размещаться в корневой папке темы
- /js/ – файлы JavaScript
- /images/ – хранит встроенные в тему изображения
- /languages/ – каталог хранит файлы переводов темы
Есть только два основных файла, которые необходимы для активации темы:
- index.php – файл, который создает блог
- style.css – стилевое оформление блога
Тем не менее, большинство тем включают в себя и другие файлы.
Вкратце разберем основные из них:
- header.php – глобальный файл, который отображает мета-данные страницы в разделе <head> и меню верхнего уровня.
- sidebar.php – этот файл отвечает за генерацию боковой колонки сайта. В основном здесь выводятся: список рубрик (категорий), последние записи, теги, различные баннеры.
- footer.php – этот файл отвечает за вывод футера, нижнего меню, копирайта и закрывает HTML-теги.
- index.php – это шаблон главной страницы сайта. По умолчанию этот файл отображает список последних постов и подгружает информацию с sidebar.php (сайдбара).
- single.php – отвечает за отображение отдельных постов. Файл содержит цикл, который запрашивает только один пост и формирует его вывод.
- page.php – формирует отдельные (статические) страницы (например, «Контакты», «О нас» и т.п.)
- archive.php – этот файл отвечает за вывод страницы архива записей
- category.php – формирует шаблон страницы, которая выводит посты по категориями
- tag.php – шаблон страницы, которая выводит список постов по тегам
- comments.php – этот файл управляет выводом комментариев
- functions.php – позволяет добавлять пользовательский код PHP и может влиять на основные элементы темы. Он добавляет функции и расширяет возможности вашего сайта. Работает как плагин WordPress.
- style.css – основной файл CSS-стилей темы.
Это основные файлы, которые могут присутствовать в теме. Некоторые темы могут содержать и другие файлы, а некоторые и пару-тройку. Все зависит от разработчика темы, и его желания более тонкой настройки сайта.
База данных в WordPress: структура, плагин
Здесь я расскажу вам о Базе данных, ее таблицах, плагине по оптимизации этих таблиц и секретов (хаки) по улучшению ее функциональности.База данных WordPress состоит из таблиц, названия данных таблиц начинаются с префикса «wp_»(по русски приставка), данная приставка служит, чтобы размещать например в одной базе данных несколько сайтов (один сайт использует например приставку wp_, а другой wp1_ и т.д.). При установке WordPress можно задать свой префикс для таблиц, но по по-умолчанию, предлагаемый вариант wp_.
Как увидеть эти самые таблицы базы данных?
Для этого нам нужно зайти на сам хостинг, ну например: hostinger.ru, зайти в свой аккаунт, в окошке ДОПОЛНИТЕЛЬНО выбрать ярлычек phpMyAdmin и войти в него, для этого вас попросят ввести пароль от базы данных. Вы увидите следующее:
Мы видим, что изначально созданная база данных имеет 11 таблиц, однако количество этих таблиц может меняться (например устанавливая плагины некоторые из них добавляют в базу данных свои таблицы, а у имеющихся таблиц добавляют свои поля, строки и т.д.).
- wp_commentmeta
- wp_comments
- wp_links
- wp_options
- wp_postmeta
- wp_posts
- wp_terms
- wp_term_relationships
- wp_term_taxonomy
- wp_usermeta
- wp_users
Рассмотрим поверхностно эти самые таблицы.
Для того, чтобы зайти в таблицу в phpMyAdmin, нажимаете мышкой в левом окошке на нужную вам таблицу и в правом окошке отображается ее содержимое.
Таблица wp_commentmeta
В нее записывается вся дополнительная информация по оставленным на вашем сайте комментариям (одобрен ли комментарий или нет, помечен ли он как спам и прочее).
Таблица wp_comments
Здесь хранятся оставленные комментарии к записям, аналог параметров из вкладки «Комментарии» в панели управления сайтом.
Здесь можно перенести например комментарий с одной страницы на другую.
Таблица wp_options
Таблица настроек WordPress, аналог параметров из вкладки «Настройки» в панели управления сайтом, а также в ней содержаться параметры установленных плагинов.
Таблица wp_postmeta
Содержит огромное количество информации о записях и статичных страницах блога: информацию о прикрепленных файлах (изображения, видео и прочие), данные заполняемых полей при создании или редактировании постов. В их число также входят поля, которые появляются после установки различных плагинов. Например, содержимое полей Title, Description, Keywords плагина All in One SEO Pack хранится именно в таблице wp_postmeta.
Таблица wp_posts
Таблица контента. В таблице хранятся данные о том, кто автор статьи, дата создания записи, сам текст, название страницы, статус записи (опубликовано, черновик, на утверждении), открыто или нет комментирование, сколько оставлено комментариев, пинги и еще очень много всевозможной информации. Вот лишь малая часть столбцов из таблицы:
Таблица wp_terms
Таблица содержит категории, теги и ссылки.
Таблица wp_term_relationships
Здесь описывается ассоциативная связь записей с категориями и тегами. Таблица содержит строки с id записями и соответствующими им id рубриками и тегами.
wp_term_taxonomy
Эта таблица связывает между собой категории, ссылки блогролла и теги воедино, а также устанавливает очередность и вложенность категорий (рубрик). Ведь рубрики могут быть родительскими и дочерними, вот таблица wp_term_taxonomy и отслеживает иерархию между ними.
Таблица wp_usermeta
Эта таблица содержит дополнительную информацию о зарегистрированных пользователях, их личные настройки и заполнение профиля своими данными, такими как цветовую схему консоли администрирования, контактные данные, биографию, никнейм и другие.
Таблица wp_users
Она содержит список зарегистрированных пользователей, их логин и пароль в зашифрованном виде, e-mail адрес, дату регистрации и еще парочку сведений.