Dove sono memorizzati i tipi personalizzati di wordpress?


20

Dove sono memorizzati i tipi personalizzati? Perché quando viene creato un tipo personalizzato, in wp_posts, il tipo di post è impostato su <new_custom_post_type>. Ma dove sono archiviati i dettagli del nuovo tipo di post personalizzato ??

Risposte:


14

Ho finalmente trovato i dati del tipo di post personalizzato. È memorizzato nella tabella wp_post dove post_type = tipo di post personalizzato (ad es. "Prodotti"). I dati del campo (colonna) sono memorizzati in wp_postmeta dove meta_key è il nome della colonna e meta_value è il valore della colonna.

Questa query riporterà tutti i dati associati al tipo di post personalizzato "prodotti":

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

I dettagli dei tipi di posta personalizzati non vengono archiviati da nessuna parte, vengono caricati in fase di esecuzione con ogni richiesta tramite register_post_typechiamate.


hmmmm, ok, è così quando stavo cercando di cercare le informazioni nel database, non le vedevo, grazie!
Noor,

1
Questo non è affatto vero.
Bainternet,

3
Ciò può essere vero per la definizione del tipo di post personalizzato, ma non affronta la questione di dove siano archiviati i dati associati a ciascuna istanza di un tipo di post personalizzato.
Bob Jones,

@BobJones la domanda menziona la wp_poststabella, quindi sembra abbastanza chiaro che sanno dove sono archiviati i dati dei post. ma se hai una diversa interpretazione della domanda, allora forse dovresti aggiungere la tua risposta.
Milo,

7

Come menzionato da @milo in questa risposta

I tipi di post non sono effettivamente archiviati separatamente nel database, tuttavia detto questo ...

via SQL

puoi visualizzare tutti i tipi di messaggi PUBLIC salvati usando la seguente query sql

SELECT DISTINCT( post_type ) FROM wp_posts;

Che produrrà qualcosa di simile a:

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

tramite WP CLI

Inoltre, se hai accesso a wp cli , puoi eseguire:

wp post-type list

Che produrrà qualcosa di simile:

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

Questa è una risposta migliore al PO. grazie.
MarsAndBack

4

Puoi utilizzare la funzione get_post_typesper ottenere informazioni su tutti i tipi di post attivi in ​​quel momento. Per ottenere informazioni su un tipo di post specifico, utilizzare get_post_type_object.


3
+1: per impostare i tipi di post restituiti get_post_typessolo da quelli personalizzati, è _builtinpossibile impostare il parametro sufalse
Nicolai,

1

L'impostazione predefinita di WordPress include alcuni tipi di post di esempio come pagine, post, ecc. Wordpress ha fornito la possibilità di creare anche i nostri tipi di post personalizzati. I post predefiniti e personalizzati vengono archiviati nella singola tabella "wp_posts" differenziando tutti i tipi di post in base alla colonna "post_type" nella tabella "wp_posts".

Ad esempio:
pagine -> post_type = "pagina",
testimoni -> post_type = "testimonianze"
ecc

Per ottenere ulteriori informazioni su questo post_types, che sarebbero disponibili nella tabella "wp_postmeta".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.