[Перевод] Понимание и работа с данными в WordPress. Часть 1. Введение
Данная статья является переводом первой статьи Rachel McCollin из цикла о данных в WordPress. В ней по полочкам разложена структура данных, типы контента и их взаимосвязь в WordPress. Будет полезна в первую очередь новичкам, но и профессионалы могут найти для себя что-либо новое.Замечание от переводчика В переводе используется терминология согласно кодексу WordPressPost — запись, Page — страница, Attachment — вложение, Revision — редакция, Comment — комментарий, Taxonomy — таксономия, Category — категория Tag — метка, Term — термин (конкретное значение пользовательской таксономии) User — пользователь Metadata — метаданные Исключение составляет лишь термин content. В большинстве случаев используется не перевод «содержимое», а — «контент». Я считаю, данный перевод является более корректным по тексту.В некоторых случаях в скобках приводится расшифровка на английском для однозначного понимания.Замечания об ошибках и опечатках прошу сообщать в личку.
Сайт на WordPress состоит из трех основных элементов:
Сама установка WordPress Содержимое каталога wp-content, которое включает темы, плагины и загрузками База данных, где храниться контент в виде данных. Большинство пользователей WordPress никогда не работают с базой данных напрямую. Они могут быть даже не в курсе, что она постоянно работает, чтобы обеспечить работу их сайт. Когда WordPress показывает любую страницу, то он соединяется к базой данных, чтобы показать контент, который добавили авторы на сайт.В этой серии статей будет детально рассмотрены аспекты базы данных WordPress. Эта серия состоит из девяти частей:
Вступление (сейчас вы читаете именно его) Взаимосвязи между данными Типы контента Пользовательские данные Метаданные Таксономии, категории, метки и термины Таксономии VS метаданные Таблица опций Данные 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_idwp_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_idwp_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 хранит различные типы данных, как использует базу данных. Более подробно элементы этого процесса будут рассмотрены в последующих статьях. Так в следующей статье будут рассмотрены взаимосвязи между данными. А так же мы остановимся более подробно на том, как конкретные таблицы связаны и как некоторые из них используются исключительно для хранения данных об взаимосвязях.