Di mana jenis khusus wordpress disimpan?

20

Di mana jenis khusus disimpan? Karena ketika tipe khusus dibuat, di wp_posts, jenis posting diatur ke <new_custom_post_type>. Tetapi di mana detail dari jenis pos kustom baru disimpan ??

Noor
sumber

Jawaban:

14

Saya akhirnya menemukan data jenis pos kustom. Ini disimpan dalam tabel wp_post di mana post_type = jenis posting khusus (mis. "Produk"). Data bidang (kolom) disimpan di wp_postmeta di mana meta_key adalah nama kolom dan meta_value adalah nilai kolom.

Kueri ini akan mengembalikan semua data yang terkait dengan "produk" jenis pos kustom:

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
Bob Jones
sumber
12

Detail jenis posting khusus tidak disimpan di mana pun, mereka dimuat saat runtime dengan setiap permintaan melalui register_post_typepanggilan.

Milo
sumber
hmmmm, ok, itu y ketika saya mencoba mencari info di database, tidak melihat mereka, terima kasih!
Noor
1
Itu tidak benar sama sekali.
Bainternet
3
Ini mungkin benar dari definisi jenis posting kustom, tetapi tidak menjawab pertanyaan di mana data yang terkait dengan setiap instance dari jenis posting kustom disimpan.
Bob Jones
@ Bob pertanyaan itu menyebutkan wp_poststabel, jadi sepertinya cukup jelas mereka tahu di mana data posting disimpan. tetapi jika Anda memiliki interpretasi yang berbeda dari pertanyaan itu, maka mungkin Anda harus menambahkan jawaban Anda sendiri.
Milo
7

Seperti yang disebutkan oleh @ moilo dalam jawaban ini

Jenis Posting sebenarnya tidak disimpan secara terpisah dalam database namun itu dikatakan ...

melalui SQL

Anda dapat melihat semua jenis posting PUBLIC yang disimpan menggunakan kueri sql berikut

SELECT DISTINCT( post_type ) FROM wp_posts;

Yang akan menampilkan sesuatu yang mirip dengan:

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

melalui WP CLI

Selain itu jika Anda memiliki akses ke wp cli , Anda dapat menjalankan:

wp post-type list

Yang akan menampilkan sesuatu seperti:

 +---------------------+-----------------------+--------------+--------------+--------+---------------------+
 | 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                |
 +---------------------+-----------------------+--------------+--------------+--------+---------------------+
Craig Wayne
sumber
Ini adalah jawaban yang lebih baik untuk OP. Terima kasih.
MarsAndBack
4

Anda dapat menggunakan fungsi ini get_post_typesuntuk mendapatkan informasi tentang semua dan semua jenis posting yang aktif saat itu. Untuk mendapatkan info tentang jenis posting tertentu, gunakan get_post_type_object.

Manny Fleurmond
sumber
3
+1 - Untuk membuat jenis posting yang dikembalikan dari get_post_typeshanya yang kustom, parameter _builtindapat diatur kefalse
Nicolai
1

WordPress default dilengkapi dengan beberapa jenis contoh posting seperti halaman, posting dll. Wordpress telah memberikan opsi untuk membuat jenis posting kustom kami sendiri juga. Baik pos standar & tersuai disimpan dalam tabel tunggal "wp_posts" dengan membedakan semua jenis posting berdasarkan kolom "post_type" di tabel "wp_posts".

Misalnya:
halaman -> post_type = "halaman",
testiminials -> post_type = "testimonials"
dll

Untuk mengambil informasi lebih lanjut tentang post_types ini, yang akan tersedia di tabel "wp_postmeta".

Raj
sumber