✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Crea tipi di post personalizzati e tassonomie personalizzate in WordPress per codice

11

Questo è un tutorial su come creare un tipo di post personalizzato e una tassonomia personalizzata in WordPress per codice. Esamineremo le insidie ​​comuni e gli argomenti da utilizzare per una creazione minima ma sufficiente. Esempio completo incluso alla fine.

Dove aggiungere il codice

La creazione di tipi di post personalizzati (CPT) e tassonomie personalizzate in WordPress può essere eseguita all’interno del file di un tema functions.phpo all’interno di un plug-in. Tieni presente che il tipo di post personalizzato e la tassonomia personalizzata scompaiono se cambi tema o disattivi il plug-in. Quindi è sicuro rimuovere temporaneamente la registrazione CPT dal tema e spostarla in un plug-in, purché si mantenga lo stesso tipo di post personalizzato o lo stesso identificatore di tassonomia slug/ID.

Per creare (e modificare) un CPT o una tassonomia, utilizzare sempre l’ inithook. Posizionarlo nella radice di functions.php(fuori da un gancio) o qualsiasi altro gancio causerà problemi.

Creazione di un tipo di post personalizzato

Per creare un tipo di post personalizzato si utilizza la register_post_typefunzione. Accetta due parametri; prima l’identificatore del tipo di post e poi un array con tutti gli argomenti.

L’identificatore del tipo di post è un nome di versione slug del tuo tipo di post. Ad esempio, i post e le pagine dei tipi di post integrati in WordPress sono identificati come ‘ post‘ e ‘ page‘. L’identificatore deve essere univoco, deve seguire una serie di regole (minuscole, niente spazi ecc.) e non essere uno slug riservato di WordPress.

Questo è ciò che ho imparato ad essere l’argomento minimo ma perfettamente sufficientemente buono per registrare un tipo di post; considerando che si tratta di un normale CPT pubblico e desideri sovrascrivere qualsiasi etichetta che dice "post" o "pagina" con il nome effettivo del tuo CPT:

Una panoramica delle argomentazioni

Tieni presente che alcuni argomenti ereditano valori da altri argomenti. A meno che non siano impostati in modo esplicito, potrebbero avere lo stesso valore predefinito o l’opposto di un altro. Diversi argomenti ereditano lo stesso valore o il valore opposto dell’argomento public. Leggi la documentazione per vedere qual è il valore predefinito per ogni argomento e se è necessario sovrascriverlo.

Se ti va bene avere testi in admin che si riferiscono al tuo tipo di post come "post" o "pagina", puoi saltare la definizione degli argomenti dell’etichetta. Probabilmente starai bene solo con label(nome plurale) e labelssolo all’interno dell’array singular_name(nome singolare).

Se non imposti esplicitamente show_in_resttrue, il tuo tipo di pos personalizzato utilizzerà il vecchio editor classico. Se desideri utilizzare l’editor Gutenberg per il tuo tipo di post personalizzato, devi impostare show_in_restsu true.

L’ supportsargomento indica quali elementi sono disponibili quando si modifica un post nel tipo di post. Come minimo probabilmente vuoi il titolo, l’editor e l’immagine del post in primo piano.

L’ rewriteargomento con il minimo di elemento array slugdice a WordPress di riscrivere tutti i post singolari del tuo tipo di post per usare questo prefisso slug. Nell’esempio sopra, un singolo post di un libro otterrebbe un URL come; ” http://example.com/book/i-robot/ “. Se sei interessato a come aggiungere un’impostazione di regola permalink nell’amministratore per consentire agli utenti del tema di decidere da soli questo slug, dai un’occhiata a questo post.

L’argomento per l’icona del menu (menu_icon) può essere uno dei seguenti Dashicon, oppure puoi lasciarlo vuoto per mantenere l’impostazione predefinita. L’impostazione predefinita è la stessa icona di Post. È comunque una buona idea separare chiaramente i tipi di post personalizzati.

Posizione menu (menu_position) ti consente di decidere la posizione del tuo tipo di post personalizzato nel menu di amministrazione. La documentazione elenca tutte le posizioni del menu di amministrazione, quindi puoi regolare; la posizione 5 è subito dopo "Post".

C’è un altro argomento (taxonomies) per allegare una tassonomia al tipo di post. Vedremo come aggiungere una tassonomia personalizzata più avanti in questo post. Per aggiungere tassonomie al tuo tipo di post, aggiungi questo argomento all’array sopra;

Una nota sui permalink e 404 errori non trovati

Dopo aver aggiunto il codice per la registrazione di un tipo di post personalizzato, noterai che la visualizzazione di un singolo post restituirà l’errore "404 non trovato". Questo perché è necessario "aggiornare i permalink".

Vai su Impostazioni> Permalink e fai semplicemente clic sul pulsante "Salva modifiche" (non è necessario modificare nulla).

Tieni presente che ogni volta che modifichi l’ rewriteattributo dovrai aggiornare nuovamente i permalink.

Creazione di una tassonomia personalizzata

Una tassonomia personalizzata può essere allegata a uno dei tipi di post di WordPress (post, pagine) o a un tipo di post personalizzato. Puoi anche allegare più tassonomie a un tipo di post. Quando registri una tassonomia, devi fornire i tipi di post a cui desideri allegarla.

Una tassonomia può essere gerarchica (come le categorie di post in cui puoi creare una struttura ad albero) o basata su tag (come i tag di post). Questa è davvero l’unica considerazione che devi sapere in anticipo, ad eccezione del suo identificatore slug. Come con i CPT, lo slug identificativo di una tassonomia deve essere unico e seguire una serie di regole.

Per registrare una tassonomia personalizzata si utilizza la register_taxonomyfunzione. Accetta lo register_taxonomyslug dell’identificatore univoco della tassonomia come primo argomento, un array di tipi di post a cui collegarlo come secondo e infine un array con tutto il resto degli argomenti. Ci sono molti argomenti, ma questo è quello che ho sperimentato per essere il minimo ma sufficiente per registrare una tassonomia personalizzata (questo aggiunge una tassonomia tag-type/non gerarchica):

Si consiglia di aggiungere una chiamata di funzione subito dopo il register_taxonomy, per assicurarsi che venga "collegato" correttamente al CPT: register_taxonomy_for_object_type. Definisci la tua tassonomia come primo argomento e il CPT come secondo:

register_taxonomy_for_object_type('book_author', 'book');

Allo stesso modo del tipo di post sopra, register_taxonomyaccetta molti più argomenti e molti di questi ereditano o dipendono dal valore di altri argomenti. Leggi la documentazione per vedere qual è il valore predefinito per ogni argomento e se è necessario sovrascriverlo.

Una panoramica delle argomentazioni

Se ti va bene avere testi che si riferiscono alla tua tassonomia come "tag" (se gerarchico è falso) o "categoria" (se gerarchico è vero), probabilmente puoi saltare tutto l’ labelsarray ad eccezione di forse singular_name.

È show_admin_columnutile per aggiungere una colonna che mostra i termini associati nella tua tassonomia nella schermata di amministrazione CPT. Proprio come in Post, vedi una colonna che mostra le categorie associate. Questo argomento è impostato di default su false(non mostrare la colonna), quindi mi piace sovrascriverlo.

L’impostazione show_in_restsu true è necessaria per avere la tua tassonomia visibile in Modifica post nell’editor Gutenberg, poiché Gutenberg si basa sull’API REST.

Allo stesso modo, come con i tipi di post personalizzati, probabilmente riceverai gli errori "404 non trovati" sulla tua tassonomia personalizzata. Vai su Impostazioni> Permalink e fai semplicemente clic sul pulsante "Salva modifiche".

Codice di esempio completo

Ecco un esempio completo di creazione di un CPT per i libri e di allegare due tassonomie personalizzate; genere (gerarchico) e autore del libro (tag).

Fonte di registrazione: awhitepixel.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More