Tipi di post di WordPress: un’astrazione per le entità
Quando i programmatori parlano di entità, di solito parlano di un concetto o qualcosa che ha un’esistenza all’interno di un sistema. A volte è una classe, a volte è una libreria o una dipendenza, oppure potrebbe essere qualcosa come i tipi di post di WordPress.
Se WordPress deve essere considerato come una base dell’applicazione (rispetto a un framework), è importante pensare a determinate funzionalità in modi che possono essere trattati come entità. Nell’esempio sopra, un tipo di post è proprio questo.
Quando sono stati introdotti i tipi di post personalizzati, ci ha fornito un modo per introdurre nell’applicazione qualcosa di diverso dalle pagine e dai post. Ora possiamo implementare qualsiasi concetto, come un evento, e trattarlo come una propria entità all’interno del sistema.
Ma quando tutto è stato detto e fatto, è tutto salvato nella tabella dei post. E va bene perché lo sviluppo del software è tutto basato sull’astrazione. Mentre implementiamo i tipi di post di WordPress, stiamo implementando un’astrazione in cima all’idea di post.
Tipi di post di WordPress
Nell’ultimo post, ho seguito il processo di creazione di un utente che sarà associato a qualche entità nell’applicazione WordPress.
- Forse è l’autore di un post,
- Forse è il venditore di un prodotto,
- Forse è il narratore di una storia,
- O qualsiasi altra cosa tu possa immaginare.
Le possibilità sono infinite. Ma prima di parlare di come creare un’associazione tra le due entità, ovvero l’utente e il tipo di post di WordPress, dobbiamo parlare di come implementare un’entità o un tipo di post personalizzato in modo programmatico.
C’è molta documentazione su questo, e ci sono molti tutorial disponibili su questo, quindi non ho intenzione di soffermarmi sul punto. Invece, cercherò di mantenerlo il più semplice possibile. Ricorda, l’obiettivo di tutta questa serie è di arrivare al punto in cui stiamo associando entità tramite metadati.
Ma prima di farlo, dobbiamo creare le entità. Quindi, abbiamo un utente, quindi facciamolo.
Per il nostro esempio, supponiamo che l’utente che abbiamo creato nel post precedente, Meghan, sia l’autore di un libro. E all’interno di un’installazione di WordPress gestita da qualcun altro, c’è un tipo di post personalizzato per i libri, ognuno dei quali ha alcuni attributi:
- titolo,
- descrizione,
- data di pubblicazione,
- ISBN,
- numero di copie iniziali vendute,
- dove può essere acquistato,
- e così via.
Puoi aggiungere più o meno alla tua implementazione. In effetti, forse sei nel settore della vendita di eBook e l’URL del libro per l’acquisto è uno degli attributi. In ogni caso, hai un’idea.
Detto questo, possiamo implementare un semplice tipo di post personalizzato per i "libri" in modo programmatico.
Implementazione di un tipo di post
E questo assomiglia a questo :
<?php
add_action( 'init', 'acme_create_book_post_type' );
/**
* Creates a new custom post type called 'Book' using the smallest number of arguments
* to prepare the post type.
*/
function acme_create_book_post_type() {
$args = array(
'labels' => array(
'name' => 'Books',
'singular_name' => 'Book',
),
'public' => true,
);
register_post_type( 'acme_book', $args );
}
Se leggi la documentazione sulla creazione di tipi di post personalizzati, non c’è nulla di anormale in questo. Dovrebbe apparire esattamente come ti aspetteresti.
Riguardo a dove crei questo dipende dalla natura del tuo progetto. Ci sono molte persone che cercheranno di trovarlo in un plug-in o di essere inserito in un tema. Non è questo il luogo per discuterne. Basti dire che, per i miei scopi, presumo che faccia tutto parte dello stesso plugin del tutorial precedente.
Inoltre, non sto divagando su tassonomie personalizzate, commenti o qualsiasi altro tipo di dati personalizzato che è possibile associare a un tipo di post personalizzato.
Da lì, diamo quindi un’occhiata a come appare nell’area di amministrazione di WordPress e come appare nel database.
Guarda dietro le quinte
Innanzitutto, ecco come appare (o dovrebbe apparire) nell’area di amministrazione di WordPress:
E se guardi il database dopo aver creato una voce, vedrai qualcosa del genere:
Ovviamente, ho limitato i record restituiti nel front-end del database filtrando i risultati per rendere lo screenshot più facile da seguire.
Sui libri
E questo è tutto, davvero. Voglio dire, al livello più fondamentale è così che crei un tipo di post personalizzato all’interno di WordPress. So che non è una novità, ma se potessi fare un caso leggermente più forte per un post come questo, includerebbe i seguenti due punti.
1 Si tratta di astrazioni
Se stai cercando di creare applicazioni web utilizzando WordPress, è importante smettere di pensare a cose in termini tradizionali come post, pagine, commenti e categorie e iniziare a considerarle come astrazioni più generiche.
Entità, come accennato in precedenza nell’articolo. Una volta fatto, avrai un cambiamento nel modello mentale che guida la tua capacità di pensare e implementare una soluzione.
2 Si tratta di relazioni
Anche se spesso pensiamo alle cose nelle loro singole parti come post e pagine, sappiamo intrinsecamente che i post possono avere commenti, commenti possono avere risposte, pagine possono avere modelli e così via.
Ci sono relazioni tra tutte queste cose individuali che fanno parte del sistema. E quando inizi a pensare alle relazioni come a qualcosa che ci permette di fare di più, inizi a vedere quanto può essere potente qualcosa. È intero "il tutto è maggiore della somma delle sue parti".
Quindi, una volta che hai entità individuali a posto e una volta che inizi a vedere come possono relazionarsi tra loro, stai facendo un passo avanti nella creazione di qualcosa che risolva un problema leggermente più complesso da parti apparentemente semplici.
Ed è lì che ci dirigeremo dopo.
E i metadati?
L’intero scopo di questa serie è esaminare come creare un’associazione tra entità, giusto? In particolare, stiamo cercando di creare un’associazione tra un utente e un post o, più specificamente, un autore e un libro.
WordPress fornisce le basi per farlo ed è qui che può entrare in gioco la potenza di tabelle e hook aggiuntivi. Nel prossimo post parlerò di come creare questa associazione, delle direzioni che possono andare le associazioni e di come lavorare con questi dati se, ad esempio, un utente viene eliminato dall’applicazione.
Messaggi di serie
- Associazione di metadati di WordPress: come farlo
- Creazione programmatica di utenti WordPress
- Tipi di post di WordPress: un’astrazione per le entità
- Associazione di metadati di WordPress: entità correlate

