Понимание и работа с данными в WordPress

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

 

Замечание от переводчика

В переводе используется терминология согласно кодексу WordPress

  • Post — запись,
  • Page — страница,
  • Attachment — вложение,
  • Revision — редакция,
  • Comment — комментарий,
  • Taxonomy — таксономия,
  • Category — категория
  • Tag — метка,
  • Term — термин (конкретное значение пользовательской таксономии)
  • User — пользователь
  • Metadata — метаданные

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

Замечания об ошибках и опечатках прошу сообщать в личку.

Сайт на WordPress состоит из трех основных элементов:

  • Сама установка WordPress
  • Содержимое каталога wp-content, которое включает темы, плагины и загрузками
  • База данных, где хранится контент в виде данных.

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

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

  1. Вступление (сейчас вы читаете именно его)
  2. Взаимосвязи между данными
  3. Типы контента
  4. Пользовательские данные
  5. Метаданные
  6. Таксономии, категории, метки и термины
  7. Таксономии VS метаданные
  8. Таблица опций
  9. Данные WordPress Multisite

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

Типы контента в WordPress

Прежде чем разбирать данные хранящиеся в базе WordPress, рассмотрим типы контента. Существуют такие стандартные типы контента:

  • Записи (posts)
  • Страницы (pages)
  • Пользовательские типы записей (custom post types)
  • Вложения (attachments)
  • Ссылки (links)
  • Элементы меню (navigation menu items)

Эти типы контента имеют такие данные:

  • Категории (categories)
  • Метки (tags)
  • Пользовательские таксономии (custom taxonomies and terms)
  • Метаданные (post metadata)

Кроме того существует типы контента, хранящиеся в ином виде:

  • Виджеты (widgets)
  • Опции (options)
  • Пользователи (users)
  • Сайты для MU WordPress
  • Нестандартный контент (hardcoded content), который добавляют некоторые темы/плагины.
  • Сторонний контент (third party content) (например RSS)

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

Структура базы данных WordPress

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

Большинство таблиц связаны с одной или несколькими другими с помощью одного поля. Это поле будет уникальным идентификатором для каждой записи (пример post_id). Более подробно для каждой таблицы:

Таблица Данные Связи с другими таблицами
wp_posts Записи, страницы, вложения, редакции, пользовательские записи wp_postmeta через post_id
wp_term_relationships через post_id
wp_postmeta Метаданные записей, страниц и т.д. wp_posts через post_id
wp_comments Комментарии wp_posts через post_id
wp_commentmeta Метаданные комментариев wp_comments через comment_id
wp_term_relationships Связи между таксономиями и записями, страницами и т.д. wp_posts через post_id
wp_term_taxonomy через term_taxonomy_id
wp_term_taxonomy Таксономии (включая категории и метки) wp_term_relationships через term_taxonomy_id
wp_terms Ваши категории, метки и термины пользовательских таксономий wp_term_taxonomy через term_id
wp_links Ссылки в вашем блоке (как правило, сейчас не используется) wp_term_relationships через link_id
wp_users Пользователи wp_posts через post_author
wp_user_meta Метаданные для каждого пользователя wp_users через user_id
wp_options Опции и настройки сайта
(устанавливаются в админке на странице настроек и в темах/плагинах)
Отсутвуют

Стоит отметить несколько вещей:

  • Таблицы базы данных по умолчанию имеют префикс wp_. Вы можете его изменить (например, при установке).
  • Таблица wp_posts является самой важно. Именно в ней храниться большинство данных.
  • Только одна таблица не связанна с другими — таблица wp_options. В ней хранятся данные о сайте и настройках WordPress, которые не имеют отношения к записям или пользователям.
  • Две таблицы используются для хранения данных о таксономии. Об это будет отдельная статья.
  • В таблицах wp_users и wp_comments данные не связаны. В настройках WordPress можно указать, что только зарегистрированные пользователи могут оставить комментарий. Не смотря на это, WordPress не хранит связи о комментариях и пользователе, который их отправил.
  • WordPress MU иметь некоторые дополнительные таблица. Их рассмотрение выходит за рамки данной статьи.

 

Связь контента и таблиц базы данных

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

Тип контента Таблица
Записи (posts) wp_posts
Страницы (pages) wp_posts
Пользовательские типы записей (custom post types) wp_posts
Вложения (attachments) wp_posts
Ссылки (links) wp_links
Элементы меню (navigation menu items) wp_posts
Категории (categories) wp_terms
Метки (tags) wp_terms
Пользовательские таксономии (custom taxonomies) wp_term_taxonomy
Термины пользовательских таксономий (custom terms) wp_terms
Метаданные (post metadata) wp_post_meta
Виджеты (widgets) wp_options
Опции (options) wp_options
Пользователи (users) wp_users
Нестандартный контент (hardcoded content) wp_posts (если добавлен к записям)
wp_options (если добавлен к виджетам)
Файлы тем/плагинов
Стороний контент (third party content) wp_posts (если добавлен к записям)
wp_options (если добавлен к виджетам)
Файлы тем/плагинов

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

Заключение

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

Источник: http://habrahabr.ru/post/233479/

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *