Где хранятся пользовательские типы записей в WordPress?
Где хранятся пользовательские типы записей? Когда создается пользовательский тип записи, в таблице wp_posts поле post_type устанавливается как <new_custom_post_type>
. Но где хранятся детали нового пользовательского типа записи??
Наконец-то я нашел данные пользовательского типа записи. Они хранятся в таблице wp_post, где post_type равен названию пользовательского типа записи (например, "products"). Данные полей (колонок) хранятся в wp_postmeta, где meta_key - это название колонки, а meta_value - её значение.
Этот запрос вернет все данные, связанные с пользовательским типом записи "products":
SELECT P.ID, P.post_title, M.meta_key, M.meta_value
FROM wp_posts AS P
INNER JOIN wp_postmeta AS M ON M.post_id = P.ID
WHERE P.post_type = 'products' and P.post_status = 'publish'
ORDER BY post_title, meta_key

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

хммм, ок, поэтому когда я пытался найти информацию в базе данных, я их не видел, спасибо!

Это может быть верно для определения типа записей (custom post type), но не отвечает на вопрос о том, где хранятся данные, связанные с каждым экземпляром этого типа записей.

Как упомянул @milo в этом ответе
Типы записей на самом деле не хранятся отдельно в базе данных, однако...
Через SQL
Вы можете просмотреть все сохранённые ПУБЛИЧНЫЕ типы записей с помощью следующего SQL-запроса:
SELECT DISTINCT( post_type ) FROM wp_posts;
Что выведет что-то вроде:
+----------------------+
| post_type |
+----------------------+
| attachment |
| competition |
| custom_css |
| customize_changeset |
| deprecated_log |
| experts |
| magazine |
| nav_menu_item |
| page |
| post |
| revision |
+----------------------+
Через WP CLI
Дополнительно, если у вас есть доступ к wp cli, вы можете выполнить:
wp post-type list
Что выведет что-то вроде:
+---------------------+-----------------------+--------------+--------------+--------+---------------------+
| name | label | description | hierarchical | public | capability_type |
+---------------------+-----------------------+--------------+--------------+--------+---------------------+
| post | Posts | | | 1 | post |
| page | Pages | | 1 | 1 | page |
| attachment | Media | | | 1 | post |
| revision | Revisions | | | | post |
| nav_menu_item | Navigation Menu Items | | | | post |
| custom_css | Custom CSS | | | | post |
| customize_changeset | Changesets | | | | customize_changeset |
| deprecated_log | Deprecated Calls | | | | post |
+---------------------+-----------------------+--------------+--------------+--------+---------------------+

Вы можете использовать функцию get_post_types
для получения информации обо всех типах записей, которые активны в данный момент. Чтобы получить информацию о конкретном типе записи, используйте get_post_type_object
.

WordPress по умолчанию включает несколько стандартных типов записей, таких как страницы, записи и т.д. WordPress также предоставляет возможность создавать собственные пользовательские типы записей. Все записи, как стандартные, так и пользовательские, хранятся в одной таблице "wp_posts", где они различаются по типу с помощью колонки "post_type" в таблице "wp_posts".
Например:
страницы → post_type="page",
отзывы → post_type="testimonials"
и т.д.
Для получения дополнительной информации о типах записей можно обратиться к таблице "wp_postmeta".
