Come creare un tipo di post personalizzato WordPress in modo programmatico

Pubblicato: 2021-10-05

Vuoi pubblicare tipi di post personalizzati sul tuo sito? Ti abbiamo coperto. In questa guida, ti insegneremo come creare un tipo di post personalizzato WordPress in modo programmatico con un po' di codice.

Inizialmente, WordPress è stato creato per pubblicare post. Tuttavia, dopo tutti questi anni, WordPress è molto più di una piattaforma per pubblicare post. Al giorno d'oggi, è la soluzione web più completa che alimenta quasi il 40% di tutti i siti web.

Anche se ha incorporato molte funzionalità, la pubblicazione dei post è ancora uno dei modi migliori per attirare utenti sul tuo sito e mantenerli coinvolti. WordPress offre tipi di post predefiniti, ma se desideri personalizzare il tuo sito e renderlo unico per distinguerti dalla concorrenza, la creazione di tipi di post personalizzati può essere una buona soluzione.

In questo tutorial, ti mostreremo come creare e pubblicare tipi di post personalizzati WordPress in modo programmatico . Prima di saltare a questo, capiamo meglio quali sono esattamente i tipi di post personalizzati e quando dovresti usarli.

Che cos'è un tipo di post personalizzato?

I tipi di post personalizzati sono tipi di contenuto. WordPress viene fornito con diversi tipi di post per impostazione predefinita. I post e le pagine sono i più famosi ma ce ne sono altri:

  • Messaggi
  • Pagine
  • Allegati
  • Menu di navigazione
  • Revisioni
  • CSS personalizzato
  • Modifiche

La maggior parte degli utenti utilizza i primi cinque tipi, ma ce ne sono altri. In realtà, probabilmente ne stai usando alcuni senza sapere che sono tipi di post personalizzati.

Il miglior esempio di un tipo di post personalizzato sono i prodotti WooCommerce. Quando attivi WooCommerce per la prima volta, il plugin crea un tipo di post personalizzato chiamato "Prodotti". Una volta che inizi a creare prodotti, questi vengono pubblicati come tipo di post prodotto, con tutti i miglioramenti offerti da WooCommerce.

Anche se questi tipi di post non sono chiamati personalizzati, puoi creare i tuoi tipi di post allo stesso modo di WooCommerce e dare loro il nome che desideri. Ad esempio, eventi, elenchi, orari, lezioni, portfolio e profili possono essere nomi di tipi di post utili per siti Web specifici.

Tutto sommato, i tipi di post personalizzati sono un nuovo tipo di post che gli utenti possono creare in base a requisiti specifici per personalizzare il proprio sito web.

Perché e quando dovresti usare un tipo di post personalizzato?

I tipi di post personalizzati (CPT) possono essere molto diversi a seconda di come sono costruiti, quindi puoi usarli per ottenere tutti i tipi di soluzioni.

Puoi utilizzare tipi di post personalizzati quando:

  • Pubblicherai regolarmente alcuni tipi specifici di informazioni che non puoi pubblicare utilizzando il tipo di post predefinito
  • Necessità di differenziare un certo tipo di post da quelli standard
  • Necessità di modificare il comportamento di alcuni tipi di post
  • Vuoi personalizzare le funzionalità dei post, il processo di pubblicazione e gli elementi o applicare loro alcune funzionalità speciali

Come regola generale, dovresti usare CPT su un sito WordPress quando hai bisogno di diversi tipi di post con le loro caratteristiche o comportamenti personalizzati.

I tipi di post personalizzati sono diversi dai tipi di post predefiniti, quindi richiedono un trattamento speciale senza dover sovrascrivere le funzionalità del tipo di post predefinito. Questo è un grande vantaggio quando hai bisogno di diversi tipi di post perché puoi creare da zero un tipo di post personalizzato che soddisfi esattamente le tue esigenze.

Ora che capiamo meglio cosa sono e quando usarli, vediamo come creare tipi di post personalizzati.

Come creare un tipo di post personalizzato WordPress in modo programmatico

In questa sezione, ti mostreremo come creare un tipo di post personalizzato in WordPress con un esempio. Prima di iniziare, assicurati di eseguire il backup del tuo sito e di creare un tema figlio se non ne hai già uno.

Nella dashboard vai su Aspetto > Editor temi , apri il file functions.php del tema figlio nella colonna di destra e incolla il seguente script. Registrerà un tipo di post personalizzato chiamato film .

 funzione QuadLayers_custom_post_type() {
// Imposta le etichette dell'interfaccia utente per il tipo di post personalizzato
    $etichette = array(
        'name' => _x( 'Film', 'Post Type General Name', 'storefront' ),
        'singular_name' => _x( 'Film', 'Post Type Singular Name', 'storefront' ),
        'menu_name' => __( 'Film', 'storefront' ),
        'parent_item_colon' => __( 'Film genitore', 'store' ),
        'all_items' => __( 'Tutti i film', 'store' ),
        'view_item' => __( 'View Movie', 'storefront' ),
        'add_new_item' => __( 'Aggiungi nuovo film', 'store' ),
        'add_new' => __( 'Aggiungi nuovo', 'store' ),
        'edit_item' => __( 'Modifica film', 'store' ),
        'update_item' => __( 'Aggiorna film', 'store' ),
        'search_items' => __( 'Cerca film', 'store' ),
        'not_found' => __( 'Not Found', 'storefront' ),
        'not_found_in_trash' => __( 'Non trovato nel Cestino', 'storefront' ),
    );
// Imposta altre opzioni per il tipo di post personalizzato
    $args = array(
        'label' => __( 'film', 'storefront' ),
        'description' => __( 'Notizie e recensioni di film', 'store' ),
        'etichette' => $ etichette,  
        'supports' => array( 'titolo', 'editor', 'estratto', 'autore', 'miniatura', 'commenti', 'revisioni', 'campi personalizzati', ),     
        'tassonomie' => array( 'generi' ),     
        'gerarchico' => falso,
        'pubblico' => vero,
        'show_ui' => vero,
        'show_in_menu' => vero,
        'show_in_nav_menus' => vero,
        'show_in_admin_bar' => vero,
        'menu_position' => 5,
        'can_export' => vero,
        'has_archive' => vero,
        'exclude_from_search' => falso,
        'publicly_queryable' => vero,
        'capability_type' => 'post',
        'show_in_rest' => vero, 
    );
    // Registrazione del tipo di post personalizzato
    register_post_type('film', $args);
}
add_action( 'init', 'QuadLayers_custom_post_type', 0 );

Dopo aver incollato il codice, una nuova scheda chiamata Film apparirà nella dashboard di amministrazione di WordPress.
Crea un tipo di post personalizzato in modo programmatico

Se lo apri, vedrai che l'editor dei post è lo stesso dei tipi di post predefiniti, perché abbiamo impostato gli stessi argomenti per la schermata dell'editor dei post. Quindi, come facciamo a sapere che è l'editor del tipo di post personalizzato? Perché nell'URL e nel titolo della pagina, puoi vedere il tipo di post Film.

Aggiungi un tipo di post personalizzato

Ora che hai visto il risultato finale, analizziamo il codice, così puoi capire meglio cosa fa ogni sezione.

Spiegazione del codice

Abbiamo appena visto come creare un tipo di post personalizzato WordPress in modo programmatico. Ma questa è solo la metà di quello che devi sapere. Se vuoi creare i tuoi tipi di post, devi personalizzare il codice. E per questo, devi capire cosa fa ogni parte dello snippet.

Usiamo l' wp_init() per assicurarci che la nostra funzione venga eseguita una sola volta: all'avvio di WordPress. Nella nostra funzione QuadLayers_custom_post_type() , ci sono tre parti.

1) Etichette

Si tratta di un insieme di stringhe che il tema utilizzerà su diverse pagine di amministrazione e frontend. Questo è impostato su un singolo array:

$labels = array(
'name' => _x( 'Movies', 'Post Type General Name', 'storefront' ),
);

2) Opzioni

Queste sono alcune opzioni predefinite che definiscono il comportamento e alcune altre caratteristiche del nostro tipo di post personalizzato ( filmati ).

Ogni opzione è un'istruzione specifica che definirà come agirà il nostro tipo di post personalizzato. I più rilevanti sono:

  • 'supporta': Definisce quali componenti verranno utilizzati nell'editor dei post
  • 'tassonomie': puoi applicare una o più categorie esistenti o categorie personalizzate a tutti i CPT registrati sulla funzione corrente
  • ' 'gerarchico' : i post non possono avere contenuti principali e questo differenzia il CPT dalle pagine. Impostalo su true se desideri pubblicare una pagina personalizzata anziché un tipo di post personalizzato
  • ' show_in_admin_bar': Visualizza la scheda CPT nella dashboard di amministrazione di WordPress

Per l'elenco completo di tutti gli argomenti e la loro descrizione, consulta questa documentazione.

3) Registrazione del tipo di posta personalizzata

La funzione di WordPress register_post_type() registrerà finalmente il nostro nuovo tipo di post personalizzato e lo imposterà in modo che sia pronto per l'uso.

Ora che comprendi meglio il codice, puoi iniziare a pubblicare i tuoi tipi di post personalizzati. Ma oltre a pubblicarli, vorrai mostrare il tuo CPT da qualche parte. Vediamo come farlo.

Come visualizzare tipi di post personalizzati in WordPress

Finora, abbiamo visto come creare un tipo di post personalizzato in modo programmatico in WordPress. Dopo averlo pubblicato, devi decidere dove visualizzarlo.

Esistono diversi modi per stampare un CPT sul front-end. Puoi visualizzare un elenco completo di tipi di post personalizzati specifici su un altro post, pagina, barra laterale o qualsiasi altro luogo che desideri.

Nello script di esempio seguente, creeremo uno shortcode personalizzato per visualizzare tutti i tipi di post personalizzati che abbiamo creato utilizzando la funzione precedente su una nuova pagina.

Il seguente script creerà uno shortcode chiamato Movies , che stamperà tutti i film che aggiungiamo al nostro CPT su qualsiasi pagina in cui aggiungiamo lo shortcode.

 add_shortcode('film', 'QuadLayers_display_cpt_shortcode');
funzione QuadLayers_display_cpt_shortcode(){
    $args = array( 'post_type' => 'film', 'post_per_page' => 10 );
    $la_query = nuova WP_Query($args);
    if ( $the_query->have_posts() ) :
    while ( $the_query->have_posts() ) : $the_query->the_post();
    $c= the_title( sprintf( '<h2 class="entry-title">', esc_url( get_the_title() ) ), '</h2>').
    '<div class="entry-content">'.
    il contenuto().
    '</div>';
nel frattempo;
wp_reset_postdata();
altro:
$c = 'Spiacente, nessun post corrisponde ai tuoi criteri.';
finisci se;
restituire $c;
}

Quindi, se metti lo shortcode su una pagina:

shortcode per visualizzare CTP

Vedrai il risultato:

tipo di post personalizzato con shortcode

Conclusione

In sintesi, abbiamo visto che, per impostazione predefinita, WordPress include alcuni tipi di post, ma puoi aggiungere tipi di post personalizzati a seconda delle tue esigenze per personalizzare il tuo sito.

In questa guida, ti abbiamo mostrato come creare un tipo di post personalizzato WordPress in modo programmatico. Abbiamo analizzato lo snippet e descritto ogni sezione, così puoi personalizzarlo e usarlo sul tuo sito. Inoltre, abbiamo visto come creare uno shortcode personalizzato che ti consenta di visualizzare i tipi di post personalizzati in qualsiasi punto del tuo sito.

Hai provato a creare tipi di post personalizzati sul tuo sito? Facci sapere la tua esperienza nella sezione commenti.

Per personalizzare altre aree del tuo sito, dai un'occhiata ai seguenti tutorial:

  • Come aggiungere campi di caricamento personalizzati su WooCommerce
  • Come aggiungere campi personalizzati alla cassa
  • Guida per modificare i campi di pagamento di WooCommerce