Где хранятся пользовательские типы записей в WordPress?

19 апр. 2012 г., 19:01:12
Просмотры: 41K
Голосов: 26

Где хранятся пользовательские типы записей? Когда создается пользовательский тип записи, в таблице wp_posts поле post_type устанавливается как <new_custom_post_type>. Но где хранятся детали нового пользовательского типа записи??

0
Все ответы на вопрос 5
0
17

Наконец-то я нашел данные пользовательского типа записи. Они хранятся в таблице 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
22 авг. 2014 г. 20:02:22
4
13

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

19 апр. 2012 г. 19:09:51
Комментарии

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

Noor Noor
19 апр. 2012 г. 19:16:45

Это совсем не так.

Bainternet Bainternet
19 апр. 2012 г. 19:52:25

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

Bob Jones Bob Jones
18 авг. 2014 г. 22:49:10

@BobJones в вопросе упоминается таблица wp_posts, так что кажется довольно очевидным, что автор знает, где хранятся данные записей. но если у вас другое толкование вопроса, возможно, вам стоит добавить собственный ответ.

Milo Milo
19 авг. 2014 г. 03:54:07
3
11

Как упомянул @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                |
 +---------------------+-----------------------+--------------+--------------+--------+---------------------+
10 окт. 2017 г. 18:29:23
Комментарии

Это лучший ответ для автора вопроса. Спасибо.

Kalnode Kalnode
16 авг. 2018 г. 18:22:58

Где хранится информация? Я не могу найти её в базе данных

axiom axiom
5 мар. 2020 г. 11:20:29

возможно, вы смотрите не ту базу данных. Проверьте файл wp-config.php для получения информации о том, какую базу данных использует ваш сайт

Craig Wayne Craig Wayne
5 мар. 2020 г. 13:41:10
1

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

25 мая 2015 г. 15:57:50
Комментарии

+1 - Чтобы возвращаемые типы записей из get_post_types были только пользовательскими, можно установить параметр _builtin в значение false

Nicolai Grossherr Nicolai Grossherr
25 мая 2015 г. 20:34:59
0

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

Например:
страницы → post_type="page",
отзывы → post_type="testimonials"
и т.д.

Для получения дополнительной информации о типах записей можно обратиться к таблице "wp_postmeta".

25 мая 2015 г. 15:43:54