- PVSM.RU - https://www.pvsm.ru -
Данная статья является переводом первой статьи Rachel McCollin из цикла о данных в WordPress. В ней по полочкам разложена структура данных, типы контента и их взаимосвязь в WordPress. Будет полезна в первую очередь новичкам, но и профессионалы могут найти для себя что-либо новое.
Исключение составляет лишь термин content. В большинстве случаев используется не перевод «содержимое», а — «контент». Я считаю, данный перевод является более корректным по тексту.
В некоторых случаях в скобках приводится расшифровка на английском для однозначного понимания.
Замечания об ошибках и опечатках прошу сообщать в личку.
Сайт на WordPress состоит из трех основных элементов:
Большинство пользователей WordPress никогда не работают с базой данных напрямую. Они могут быть даже не в курсе, что она постоянно работает, чтобы обеспечить работу их сайт. Когда WordPress показывает любую страницу, то он соединяется к базой данных, чтобы показать контент, который добавили авторы на сайт.
В этой серии статей будет детально рассмотрены аспекты базы данных WordPress. Эта серия состоит из девяти частей:
В этом статье рассматриваются таблицы базы данных и как они относятся с типами контента. Данные типы контента используются для работы в WordPress и определяют что, как и где должно храниться.
Прежде чем разбирать данные хранящиеся в базе WordPress, рассмотрим типы контента. Существуют такие стандартные типы контента:
Эти типы контента имеют такие данные:
Кроме того существует типы контента, хранящиеся в ином виде:
Все эти типы контента хранятся в таблицах базы данных или в файлах настроек тем/плагинов. Каждый тип может быть представлен как отдельной записью в таблице, так и её частью. Кроме, того они могут быть связаны с данными в других таблицах. Например, данные о записях связаны с данными о пользователях, так что WordPress знает, кто является автором, какой записи.
WordPress использует несколько взаимосвязанных таблиц. Между ними установлены связи один ко многим. Например, к одной странице может быть много комментариев. Приведенная ниже диаграмма взята из кодекса WordPress [2]. На ней показаны таблицы и связи между ними:
Большинство таблиц связаны с одной или несколькими другими с помощью одного поля. Это поле будет уникальным идентификатором для каждой записи (пример 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 | Опции и настройки сайта (устанавливаются в админке на странице настроек и в темах/плагинах) |
Отсутвуют |
Стоит отметить несколько вещей:
Ознакомившись с типами контента в 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 хранит различные типы данных, как использует базу данных. Более подробно элементы этого процесса будут рассмотрены в последующих статьях. Так в следующей статье будут рассмотрены взаимосвязи между данными. А так же мы остановимся более подробно на том, как конкретные таблицы связаны и как некоторые из них используются исключительно для хранения данных об взаимосвязях.
Автор: galk_in
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/wordpress/67607
Ссылки в тексте:
[1] кодексу WordPress: http://codex.wordpress.org/%D0%92%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D1%8E_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D1%87%D0%B8%D0%BA%D0%BE%D0%B2
[2] кодекса WordPress: http://codex.wordpress.org/Database_Description
[3] Источник: http://habrahabr.ru/post/233479/
Нажмите здесь для печати.