वर्डप्रेस कस्टम प्रकार कहाँ संग्रहीत हैं?


20

कस्टम प्रकार कहाँ संग्रहीत हैं? क्योंकि जब wp_posts में एक कस्टम प्रकार बनाया जाता है, तो पोस्ट प्रकार कस्टम पर सेट होता है <new_custom_post_type>। लेकिन नए कस्टम पोस्ट प्रकार का विवरण कहाँ संग्रहीत किया जाता है ??

जवाबों:


14

मैंने आखिर में कस्टम पोस्ट टाइप डेटा पाया। इसे wp_post टेबल में पोस्ट किया जाता है जहाँ पोस्ट_टाइप = कस्टम पोस्ट टाइप (जैसे "उत्पाद")। फ़ील्ड (स्तंभ) डेटा को 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, ठीक है, जब मैं डेटाबेस में जानकारी के लिए खोज करने की कोशिश कर रहा था, तो y उन्हें धन्यवाद नहीं देख रहा था!
नूर

1
यह बिलकुल भी सच नहीं है।
बेनटर्नट

3
यह कस्टम पोस्ट प्रकार की परिभाषा के बारे में सही हो सकता है, लेकिन यह इस सवाल को संबोधित नहीं करता है कि कस्टम पोस्ट प्रकार के प्रत्येक उदाहरण से जुड़ा डेटा कहाँ संग्रहीत है।
बॉब जोन्स

@BusJones प्रश्न में wp_postsतालिका का उल्लेख है , इसलिए यह बहुत स्पष्ट लगता है कि वे जानते हैं कि पोस्ट डेटा कहाँ संग्रहीत है। लेकिन यदि आपके पास प्रश्न की एक अलग व्याख्या है, तो शायद आपको अपना जवाब जोड़ना चाहिए।
मिलो

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

यह ओपी के लिए एक बेहतर जवाब है। धन्यवाद।
मंगलएंडबैक

4

आप get_post_typesउस समय सक्रिय किसी भी और सभी प्रकार की जानकारी प्राप्त करने के लिए फ़ंक्शन का उपयोग कर सकते हैं । विशिष्ट पोस्ट प्रकार के बारे में जानकारी प्राप्त करने के लिए, का उपयोग करें get_post_type_object


3
+1 - get_post_typesकेवल कस्टम वालों से लौटे हुए पोस्ट प्रकार बनाने के लिए पैरामीटर _builtinको सेट किया जा सकता हैfalse
निकोलाई

1

वर्डप्रेस डिफ़ॉल्ट कुछ सैंपल पोस्ट प्रकार जैसे पेज, पोस्ट आदि के साथ आता है। वर्डप्रेस ने हमारे स्वयं के कस्टम पोस्ट प्रकार भी बनाने के लिए विकल्प दिया है। डिफ़ॉल्ट और कस्टम पोस्ट दोनों को "wp_posts" टेबल में "पोस्ट_टाइप" कॉलम के आधार पर सभी पोस्ट प्रकारों में अंतर करके एकल टेबल "wp_posts" में संग्रहीत किया जाता है।

जैसे:
पृष्ठ -> पोस्ट_टाइप = "पेज",
टेस्टिमिनियल्स -> पोस्ट_टाइप = "प्रशंसापत्र"
आदि

इस पोस्ट_टाइप्स के बारे में अधिक जानकारी प्राप्त करने के लिए, जो "wp_postmeta" टेबल पर उपलब्ध होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.