Статьи

Понимание и работа с типами контента в WordPress

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

Здесь я рассмотрю типы контента более подробно и опишу различные типы контента в WordPress и как они взаимодействуют.

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

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

Давайте взглянем!

В WordPress есть четыре вида контента:

  1. сообщений
  2. Комментарии
  3. пользователи
  4. связи

Многие из них ведут себя совершенно одинаково, как мы увидим.

Сообщения являются наиболее важным типом контента в WordPress. Терминология вокруг них может сбивать с толку, поскольку post используется для описания чего-либо в таблице wp_posts но также используется для описания определенного типа записи. Добавление следующего к запросу может показаться излишним, но это имеет смысл!

1
‘post_type’ => ‘post’

В WordPress встроено пять типов записей по умолчанию:

  1. Почта
  2. страница
  3. прикрепление
  4. пересмотр
  5. пункт меню навигации

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

Первые три типа постов будут знакомы разработчикам WordPress как посты, но менее очевидно, что последние два поста. Каждая ревизия сохраняется в таблице wp_posts вместе с постом, к wp_posts она относится как родитель (с использованием поля post_parent ), а элементы меню навигации сохраняются в виде постов и затем выводятся с помощью запроса при отображении меню. Вот почему навигационные меню могут внезапно исчезнуть, если вы неправильно используете фильтр pre_get_posts() !

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

Диаграмма ниже показывает таблицу wp_posts и таблицы, с wp_posts она связана:

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

Комментарии будут связаны с сообщениями посредством отношения один ко многим, и они также связаны друг с другом с помощью поля comment_parent — это используется для идентификации комментариев, которые являются ответами на другие комментарии. Они также могут быть необязательно связаны с таблицей wp_users если они сделаны пользователями, которые вошли в систему.

Диаграмма показывает таблицу wp_comments и ее взаимосвязи:

У пользователей есть собственная таблица wp_users , а также метаданные, хранящиеся в таблице wp_usermeta . На первый взгляд пользователи могут показаться, что они имеют совершенно иной тип контента, чем посты, но они более похожи, чем вы думаете — их можно запрашивать и выводить в архив автора, и они имеют контент в форме биографических данных о пользователях. Этот контент структурирован совсем не так, как посты, ссылки и комментарии, поэтому пользователям нужна собственная таблица.

Диаграмма показывает таблицу wp_users и ее взаимосвязи:

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

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

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

Таблица wp_links и ее связь с другими таблицами показаны ниже:

Из четырех типов контента, описанных выше, три могут иметь назначенные им метаданные:

  1. сообщений
  2. Комментарии
  3. пользователи

Позже я расскажу о метаданных более подробно в этой серии и покажу, как они хранятся.

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

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