เก็บ wordpress แบบกำหนดเองอยู่ที่ไหน


20

ที่เก็บประเภทที่กำหนดเองอยู่ที่ไหน เพราะเมื่อเป็นชนิดที่กำหนดเองจะถูกสร้างขึ้นใน wp_posts <new_custom_post_type>ประเภทโพสต์ถูกกำหนดให้เป็น แต่รายละเอียดของประเภทโพสต์ที่กำหนดเองใหม่จะถูกเก็บไว้ที่ไหน?

คำตอบ:


14

ในที่สุดฉันก็พบข้อมูลประเภทโพสต์ที่กำหนดเอง มันถูกเก็บไว้ในตาราง wp_post ที่ post_type = ประเภทโพสต์ที่กำหนดเอง (เช่น "ผลิตภัณฑ์") ข้อมูลฟิลด์ (คอลัมน์) ถูกเก็บไว้ใน wp_postmeta โดยที่ meta_key เป็นชื่อคอลัมน์และ meta_value คือค่าคอลัมน์

แบบสอบถามนี้จะนำข้อมูลทั้งหมดที่เชื่อมโยงกับ "โพสต์ประเภท" ที่กำหนดเองกลับมา:

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

12

รายละเอียดของประเภทโพสต์ที่กำหนดเองจะไม่ถูกเก็บไว้ที่ใดพวกเขาโหลดตอนรันไทม์พร้อมคำขอแต่ละรายการผ่านการregister_post_typeโทร


hmmmm, ok, thats y เมื่อฉันพยายามค้นหาข้อมูลในฐานข้อมูลไม่เห็นพวกเขาขอบคุณ!
Noor

1
นั่นไม่จริงเลย
Bainternet

3
นี่อาจเป็นจริงของคำจำกัดความของประเภทโพสต์ที่กำหนดเอง แต่ไม่ได้ตอบคำถามที่ว่าข้อมูลที่เกี่ยวข้องกับแต่ละประเภทโพสต์ที่กำหนดเองถูกเก็บไว้ที่ใด
บ๊อบโจนส์

@BobJones คำถามที่กล่าวถึงwp_postsตารางดังนั้นจึงค่อนข้างชัดเจนว่าพวกเขารู้ว่าข้อมูลโพสต์จะถูกเก็บไว้ที่ไหน แต่ถ้าคุณมีการตีความที่แตกต่างกันของคำถามบางทีคุณควรเพิ่มคำตอบของคุณเอง
Milo

7

ตามที่กล่าวถึงโดย@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                |
 +---------------------+-----------------------+--------------+--------------+--------+---------------------+

นี่เป็นคำตอบที่ดีกว่าสำหรับ OP ขอบคุณ.
MarsAndBack

4

คุณสามารถใช้ฟังก์ชั่นget_post_typesเพื่อรับข้อมูลประเภทโพสต์ใด ๆ และทั้งหมดที่ใช้งานในเวลานั้น get_post_type_objectที่จะได้รับข้อมูลเกี่ยวกับการที่เฉพาะเจาะจงประเภทโพสต์ใช้


3
+1 - ในการสร้างประเภทโพสต์ที่ส่งคืนจากget_post_typesแบบกำหนดเองเท่านั้นพารามิเตอร์_builtinสามารถตั้งเป็นfalse
Nicolai

1

WordPress เริ่มต้นมาพร้อมกับโพสต์ตัวอย่างบางประเภทเช่นหน้าโพสต์ ฯลฯ Wordpress ได้ให้ตัวเลือกในการสร้างประเภทโพสต์ของเราเองเช่นกัน ทั้งโพสต์เริ่มต้น & โพสต์ที่กำหนดเองจะถูกเก็บไว้ในตารางเดียว "wp_posts" โดยการแยกประเภทโพสต์ทั้งหมดตามคอลัมน์ "post_type" ในตาราง "wp_posts"

เช่น
หน้า -> post_type = "หน้า",
ข้อความรับรอง -> post_type = "ข้อความรับรอง"
ฯลฯ

หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับ post_types นี้ซึ่งจะมีให้ที่ตาราง "wp_postmeta"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.