WordPress Özel Türleri Nerede Saklanır?


20

Özel türler nerede depolanır? Özel bir tür oluşturulduğunda, wp_posts öğesinde, yazı türü olarak ayarlanır <new_custom_post_type>. Ancak yeni özel yazı türünün ayrıntıları nerede saklanır?

Yanıtlar:


14

Sonunda özel yazı tipi verilerini buldum. Wp_post tablosunda post_type = custom post type (örneğin "ürünler") içinde saklanır. Alan (sütun) verileri wp_postmeta'da depolanır; burada meta_key, sütun adı ve meta_value sütun değeridir.

Bu sorgu, özel gönderi türü "ürünler" ile ilişkili tüm verileri geri getirecektir:

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

Özel gönderi türlerinin ayrıntıları hiçbir yerde depolanmaz, çalışma zamanında her istekle register_post_typearamalar yoluyla yüklenir .


hmmmm, tamam, ben veritabanında bilgi aramak için çalışırken, onları görmüyordu, teşekkürler!
Noor

1
Bu tam olarak doğru değil.
Bainternet

3
Bu, özel gönderi türünün tanımı için geçerli olabilir, ancak özel bir gönderi türünün her bir örneğiyle ilişkili verilerin nerede saklandığı sorusunu ele almaz.
Bob Jones

@BobJones soruyu wp_poststablodan bahsediyor , bu nedenle yazı verilerinin nerede depolandığını bildikleri oldukça açık görünüyor. ancak soruyu farklı bir yorumunuz varsa, belki de kendi cevabınızı eklemelisiniz.
Milo

7

Bu cevapta @milo tarafından belirtildiği gibi

Yazı Türleri aslında veritabanında ayrı olarak saklanmaz, ancak söylenir ...

SQL ile

aşağıdaki sql sorgusunu kullanarak kaydedilmiş tüm PUBLIC yayın türlerini görüntüleyebilirsiniz

SELECT DISTINCT( post_type ) FROM wp_posts;

Hangi şuna benzer bir çıktı verecektir:

+----------------------+
| post_type            |
+----------------------+
| attachment           |
| competition          |
| custom_css           |
| customize_changeset  |
| deprecated_log       |
| experts              |
| magazine             |
| nav_menu_item        |
| page                 |
| post                 |
| revision             |
+----------------------+

WP CLI aracılığıyla

Ayrıca wp cli'ya erişiminiz varsa , şunları çalıştırabilirsiniz:

wp post-type list

Hangi gibi bir çıktı verecektir:

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

Bu OP için daha iyi bir cevaptır. Teşekkür.
MarsAndBack

4

Bu işlevi get_post_types, o sırada etkin olan tüm gönderi türleri hakkında bilgi almak için kullanabilirsiniz . Belirli bir yazı türü hakkında bilgi almak için tuşunu kullanın get_post_type_object.


3
+1 - Döndürülen gönderi türlerini get_post_typesyalnızca özel olanlardan yapmak için parametre _builtinşu şekilde ayarlanabilir:false
Nicolai

1

WordPress varsayılanı sayfalar, yazılar vb. Gibi bazı örnek yazı türleriyle birlikte gelir. Wordpress ayrıca kendi özel yazı türlerimizi oluşturma seçeneği de sunar. Hem varsayılan hem de özel gönderiler, "wp_posts" tablosundaki "post_type" sütununa göre tüm gönderi türlerini ayırarak tek bir tablo "wp_posts" içinde depolanır.

Örneğin:
sayfalar -> post_type = "sayfa",
testimler -> post_type = "referanslar"
vb.

"Wp_postmeta" tablosunda bulunan bu post_types hakkında daha fazla bilgi edinmek için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.