自定义类型存储在哪里?因为在创建自定义类型时,在wp_posts中,帖子类型被设置为<new_custom_post_type>。但是,新的自定义帖子类型的详细信息存储在哪里?

#1 楼

我终于找到了自定义帖子类型数据。它存储在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


#2 楼

自定义帖子类型的详细信息不会存储在任何地方,它们会在运行时通过register_post_type调用随每个请求一起加载。

评论


嗯,好,那是y,当我尝试在数据库中搜索信息时,没有看到它们,谢谢!

– Noor
2012年4月19日在16:16

那根本不是真的。

–互联网
2012年4月19日在16:52

这对于自定义帖子类型的定义可能是正确的,但是它没有解决与自定义帖子类型的每个实例相关联的数据存储在何处的问题。

–鲍勃·琼斯(Bob Jones)
14年8月18日在19:49

@BobJones这个问题提到了wp_posts表,因此很明显他们知道发布数据的存储位置。但是,如果您对问题的理解不同,那么也许您应该添加自己的答案。

–米洛
14年8月19日,0:54

#3 楼

就像@milo在此答案中提到的那样

帖子类型实际上并没有单独存储在数据库中,但是可以这么说...

通过SQL

您可以使用以下sql查询查看所有已保存的PUBLIC帖子类型。

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                |
 +---------------------+-----------------------+--------------+--------------+--------+---------------------+


评论


这是对OP的更好回答。谢谢。

– MarsAndBack
18年8月16日在15:22



信息存储在哪里?我在数据库中找不到

–公理
20 Mar 5 '20 at 9:20



您可能正在查看错误的数据库。查看您的wp-config.php文件,以获取有关您的站点正在使用哪个数据库的更多信息。

–克雷格·韦恩(Craig Wayne)
20 Mar 5 '20 at 11:41

#4 楼

您可以使用功能get_post_types获取有关当时处于活动状态的任何和所有帖子类型的信息。要获取有关特定帖子类型的信息,请使用get_post_type_object

评论


+1-要使从get_post_types返回的帖子类型仅是自定义类型,可以将参数_builtin设置为false

–尼古拉
2015年5月25日17:34



#5 楼

WordPress默认附带一些示例帖子类型,例如页面,帖子等。Wordpress还提供了创建我们自己的自定义帖子类型的选项。通过根据“ wp_posts”表中的“ post_type”列区分所有帖子类型,默认和自定义帖子都存储在单个表“ wp_posts”中。

例如:
页面-> post_type = “ page”,
证词-> post_type =“ testimonials”等

要获取有关此post_type的更多信息,可在“ wp_postmeta”表中找到。