Comprendere e lavorare con i messaggi in WordPress

Come tanti esempi di terminologia di WordPress, il termine "post" può essere fonte di confusione, in quanto fa riferimento a un tipo di post e a un tipo di contenuto archiviato in una tabella di database specifica. 

Qui, chiarirò la differenza tra i due e osserverò i tipi di post in dettaglio.

Nella parte precedente di questa serie, ho esaminato i diversi tipi di contenuto in WordPress, che sono memorizzati in un numero di diverse tabelle di database. Questi sono:

  • messaggi
  • utenti
  • Commenti
  • link

In questo tutorial esaminerò i post in modo più dettagliato e delineamo i tipi di post, le relazioni tra loro e il modo in cui la comprensione di tutto questo può aiutarti a lavorare con loro.

Definizione di post

Innanzitutto, inizierò definendo i post e in che modo si differenziano dai post (sì, è confuso e l'aggiunta di una lettera maiuscola non rende le cose molto più chiare!):

  • UN inviare è un elemento di contenuto memorizzato in wp_posts tavolo. Ognuno ha un post_type assegnato ad esso, che potrebbe essere inviare, pagina o qualcos'altro.
  • Post è un tipo di post, utilizzato per post di blog o notizie a seconda del tipo di sito che stai sviluppando.

Il wp_posts la tabella è mostrata nell'immagine qui sotto.

Ha senso? In caso contrario, continua a leggere, tutto diventerà chiaro!

Tipi di post in WordPress

WordPress ha cinque tipi di post integrati:

  • Inviare
  • Pagina
  • attaccamento
  • Revisione
  • Voce del menu di navigazione

Oltre a questo puoi aggiungere i tuoi tipi di post personalizzati usando il register_post_type () funzione, il che significa che l'installazione di WordPress può avere tutti i tipi di post che desideri. Ogni tipo di post ha lo stesso status dei tipi di post incorporati - occasionalmente ho sentito di persone che pensano che "tipo di post personalizzato" sia un tipo di post stesso. Non lo è!

Lo illustrerò con un esempio. Quando scrivi una query personalizzata per i post, devi aggiungere quanto segue agli argomenti della tua query:

'post_type' => 'post'

Ma se hai creato un tipo di messaggio personalizzato chiamato my_post_type, lo interrogeresti con il seguente:

'post_type' => 'my_post_type'

Puoi usare questo post_type argomento per interrogare qualsiasi tipo di messaggio, e in effetti è possibile interrogare più tipi di post, se lo si desidera. Non entrerò nei dettagli in quanto è al di fuori dello scopo di questo tutorial, ma puoi leggere di più sulla pagina del codice WordPress per WP_Query.

Comprensione dei tipi di post predefiniti

Diamo uno sguardo veloce a ciascuno dei tipi di post integrati, a come sono simili tra loro e in che modo differiscono. Si noti che nella tabella seguente, utilizzo il termine post in senso generico per descrivere il contenuto di tutti i tipi di post.

Post Type Usato per Gli appunti
Inviare Post del blog o simili Tipo di post principale - elencato nella pagina principale del blog
Pagina Pagine statiche Progettato per essere esposto singolarmente - generalmente non utilizzato negli archivi (anche se possono essere).
Le pagine possono avere genitori, che sono definiti usando il post_parent campo nel record per la pagina figlio.
Ogni pagina può avere più figli ma solo un genitore.
attaccamento Documenti e immagini (che possono o meno essere allegati a un post) I media caricati su un post avranno l'ID di quel post nel suo post_parent campo. Le immagini caricate tramite la schermata Media nella dashboard avranno quel campo vuoto. Il guid campo è usato per memorizzare l'url del file multimediale.
Revisione Revisioni individuali per ogni post Ogni revisione è allegata a un post: il ID di quel post verranno archiviati nella revisione post_parent campo.
Elementi del menu di navigazione Singoli elementi del menu di navigazione Ogni menu conterrà un numero di elementi di navigazione, ognuno dei quali è memorizzato come post. Il menu_order campo viene utilizzato per memorizzare informazioni sull'ordine delle voci del menu di navigazione e dati aggiuntivi come la voce di menu target e padre vengono memorizzati come record nel wp_postmeta tavolo.

I tipi di post personalizzati possono essere registrati per comportarsi allo stesso modo dei tipi di post integrati (ad eccezione di attaccamento), ma il valore predefinito è inviare. Ciascuno dei tipi di post ha la sua interfaccia.

Relazioni tra i messaggi

Come puoi vedere dalla tabella sopra, il post_parent il campo è importante, poiché memorizza informazioni sulle relazioni tra diversi post. Questi includono:

  • pagine padre e figlio
  • revisioni e il post a cui si riferiscono
  • allegati e il post in cui sono stati caricati

Puoi usare il post_parent campo in vari modi nelle vostre domande. Ad esempio, per eseguire una query per le pagine figlio di una determinata pagina, si utilizzerà quanto segue, dove ID è l'ID della pagina madre:

'post_parent' => 'ID'

È possibile utilizzare una query simile per visualizzare gli allegati caricati su un determinato post, o in alternativa è possibile interrogare gli allegati senza alcun genitore (cioè quelli caricati direttamente sullo schermo multimediale nella dashboard). 

Per fare ciò, dovresti usare il seguente argomento:

'post_parent' => '0'

È altamente improbabile che tu abbia mai bisogno di interrogare le revisioni, perché vuoi che i visitatori vedano i tuoi contenuti pubblicati.

Puoi anche usare post_parent_in con una serie di ID per identificare i figli di una serie di post o pagine.

Sommario

Capire il wp_posts tabella e ciò che memorizza è una parte essenziale della comprensione del database di WordPress. Come hai visto, il wp_posts la tabella viene utilizzata per archiviare i post, che include cinque tipi di post incorporati (incluso Post) e qualsiasi numero di tipi di post personalizzati aggiunti. 

La tabella memorizza anche i dati sulle relazioni tra i post, nel post_parent campo.