Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Plugins
Code

Una guida ai Custom Post Type di Wordpress: creazione, visualizzazione e Meta box

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called A Guide to WordPress Custom Post Types.
WordPress Custom Post Types: Taxonomies, Admin Columns & Filters

Italian (Italiano) translation by Roberta C (you can also view the original English article)

WordPress è stato costruito per essere personalizzato. È stato creato in modo tale che ogni sezione è personalizzabile. In questo tutorial esploreremo una delle più potenti caratteristiche di WordPress nota come Custom Post Type di come WordPress ha raggiunto un nuovo livello con l'avvento di questa caratteristica meravigliosa.


Che cosa sono i Custom Post Type?

Si supponga di volere per il proprio blog una sezione separata per le recensioni dei film. Utilizzando i custom post type è possibile creare un nuovo tipo di elemento come post e pagine, che contiene un diverso set di dati. Avrà un nuovo menu di amministrazione, modifica pagine dedicato, tassonomie personalizzate e molte utilità necessarie per la pubblicazione a pieno titolo.

I Custom Post Type sono un nuovo set di opzioni amministrative che appaiono oltre i tipi di post di default, come per esempio i Post, le Pagine, gli Allegati etc.   Un Custom Post Type può memorizzare qualsiasi tipo di informazione. Ha un editor dedicato, un media uploader e utilizza la struttura di tabelle esistente di WordPress per facilitare la gestione dei dati. Il vantaggio principale di creare custom post type utilizzando l'API di WordPress è che essa si dota di temi e template esistenti. I Custom Post Type sono anche SEO friendly per il loro ottimi permalink.


Perché usare i Custom Post Type?

I Custom Post Type ci aiutano a dividere differenti tipi di post in aree separate. Separa i nostri post regolari dagli altri. Abbastanza semplice!


Proviamo a creare un Plugin per i Custom Post Type

Creiamo un plugin per i custom post type che ci permetta di visualizzare le recensioni preferite dei film. Iniziamo.

Step 1: Creare la Directory dei Plugin di WordPress

Aprire la directory dei plugin di Wordpress e creare una nuova directory denominata Movie-Reviews.

Step 2: Creare il File PHP

Aprire la directory e creare un file PHP chiamato Movie-Reviews.php.

Step 3: Aggiungere l'header

Aprire il file e aggiungere l'header nella parte superiore.

Step 4: Registrare la funzione personalizzata

Prima della chiusura del comando PHP, digitare la seguente riga di codice per eseguire la funzione personalizzata chiamata create_movie_review durante la fase di inizializzazione ogni volta che una pagina viene generata.

Fase 5: Implementare la funzione

Provvedere a implementare la funzione create_movie_review.

La funzione register_post_type fa la maggior parte del lavoro. Non appena viene chiamata si prepara l'ambiente WordPress per un nuovo custom post type tra le diverse sezioni nell'admin. Questa funzione accetta due argomenti: il primo è il name univoco del custom post type e il secondo un array che contiene le proprietà del nuovo custom post type. Questo è un altro array che contiene le diverse etichette che indicano le stringhe di testo da visualizzare nelle varie sezioni del custom post type, ad esempio 'name' visualizza il nome del custom post type nella dashboard, 'edit' e 'view' vengono visualizzati rispettivamente nei bottoni Edit e View. Penso che il resto sia abbastanza auto esplicativo.

Nei prossimi argomenti:

  • 'public' => true determina la visibilità del custom post type sia nel pannello di amministrazione che nel front-end.
  • 'menu_position' => 15 determina la posizione del menu del custom post type.
  • 'supports' => array ('title', 'editor', 'comments', 'thumbnail', 'custom-fields') determina le caratteristiche del custom post type che deve essere visualizzato.
  • 'taxonomies' => array('') crea tassonomie personalizzate. Qui non è definito.
  • 'menu_icon' => plugins_url ('images/image.png', __FILE__) consente di visualizzare l'icona del menu nell'admin.
  • 'has_archive' => true consente l'archiviazione del custom post type.

Si prega di visitare la pagina del register_post_type nel Codex di Wordpress per maggiori dettagli su diversi argomenti utilizzati nei custom post type.

Step 6: Icona per il custom post type

Salvare un'immagine dell'icona di 16x16 pixel nella cartella del plugin corrente. Questa serve come icona del custom post type nella dashboard.

Step 7: Attivare il Plugin

Attivare il plugin e questo è tutto, si dispone di un nuovo custom post type con editor di testo, bottone di pubblicazione, immagine in evidenza,commenti e l'editor dei campi personalizzati.

Step 8: Aggiungere un nuovo elemento

Scegliere l'opzione Aggiungi nuovo per andare nell'editor del custom post type. Inserire un titolo di film, una recensione e impostare un'immagine in evidenza.

Step 9: pubblicare

Pubblicare il post e fare clic su View Movie Review per visualizzare il nuovo post nel browser.


Creare campi Metabox per i custom post type.

Il meccanismo dei meta box usa il sistema preconfigurato di Wordpress e ci aiuta ad aggiungere campi richiesti specificamente per il custom post type, senza bisogno dei campi personalizzati predefiniti nell'editor.

Step 1: Registrare la funzione personalizzata

Aprire il file Movie-Reviews.php e aggiungere il seguente codice prima del tag di chiusura di PHP. Questo registra una funzione da chiamare quando l'interfaccia di amministrazione di WordPress viene visitata.

Fase 2: Implementare la funzione personalizzata

Aggiungere un'implementazione della funzione my_admin che registra una casella meta box e la associa al custom post type movie_reviews.

Qui add_meta_box è la funzione utilizzata per aggiungere meta box al custom post type. Spiegazione degli attributi specificati:

  • movie_review_meta_box è l'attributo HTML id
  • Movie Review Details è il testo visibile nell'intestazione della sezione meta box
  • display_movie_review_meta_box è il callback che esegue il rendering del contenuto della casella meta box
  • movie_reviews è il nome del custom post type dove verrà visualizzato il meta box
  • normal definisce la parte della pagina in cui deve essere visualizzata la schermata di modifica
  • high definisce la priorità all'interno del contesto dove si dovrebbero mostrare le caselle

Fase 3: Implementazione della funzione display_movie_review_meta_box

Questo codice esegue il rendering del contenuto del meta box. Qui abbiamo usato una variabile oggetto che contiene le informazioni di ciascuna delle recensioni dei film visualizzate nell'editor. Utilizzando questo oggetto abbiamo estratto l'ID del post e lo abbiamo usato per eseguire query sul database per ottenere il nome del regista associato e il Rating che a loro volta visualizzano campi sullo schermo. Quando viene aggiunta una nuova voce il get_post_meta restituisce una stringa vuota, che si traduce in visualizzazione di campi vuoti nel meta box.

Step 4: Registrare un funzione

Questa funzione viene chiamata quando i messaggi vengono salvati nel database.

Step 5: Implementare la funzione add_movie_review_fields 

Questa funzione viene eseguita quando i post vengono salvati o eliminati dal pannello di amministrazione. Qui dopo aver controllato il tipo di dati ricevuti, se è un custom post type controlla nuovamente per vedere se agli elementi meta box sono stati assegnati valori e poi infine archivia i valori in questi campi.

Step 6: Disattivare l'opzione di campi personalizzati predefinita

Durante la creazione del custom post type abbiamo definito una funzione create_movie_review. Rimuovere l'elemento custom-fields dall'array supports perché non è più necessario. Ora, se si salva il file e si aprire l'editor di Movie Reviews, si possono notare due campi nel meta box chiamati Movie Author e Movie Rating. Allo stesso modo è possibile aggiungere anche altri elementi.


Creare un template personalizzato dedicato ai custom post type

Il modo corretto per visualizzare i custom post type è usando template personalizzati per ognuno dei custom post type. Qui noi creiamo un template che visualizza tutte le recensioni di film inserite utilizzando il custom post type Movie Review.

Step 1: Registrare una funzione per forzare il template dedicato

Aprire il file Movie-Reviews.php e aggiungere il seguente codice prima del tag di chiusura di PHP. Questo registra una funzione da chiamare quando l'interfaccia di amministrazione di WordPress viene visitato.

Fase 2: Implementare la funzione

Qui il codice cerca un template come single-(post-type-name). php nella directory del tema corrente. Se non si trova qui verrà cercata nella directory dei plugin per il template che forniamo come parte del plugin. l'hook template_include è stato utilizzato per modificare il comportamento predefinito e applicare uno specifico template.

Step 3: Creare il template di pagina singola

Dopo aver salvato il file di plugin precedentemente aperto, creare un altro file PHP e chiamarlo single-movie_reviews.php e inserire il codice seguente.

Qui abbiamo creato un template di pagina di base utilizzando il loop. La funzione query_posts recupera gli elementi del custom post type da visualizzare utilizzando il ciclo. Naturalmente è solo un ciclo di base e si può modificare come si desidera. È anche possibile utilizzare gli stili CSS appropriati per formattare gli elementi di conseguenza.

Nota: È necessario creare una nuova pagina nella dashboard utilizzando il template appena creato.

Step 4: immagini

È necessario salvare due icone stella 32x32 pixel nella cartella plugin. Chiamarle icon.png e grey.png rispettivamente. Questo è tutto, ora le recensioni di film vengono visualizzate su una sola pagina ordinate per data.

Nel mio prossimo tutorial tratterò più caratteristiche dei custom post type come la creazione di una pagina di archivio, creazione di tassonomie personalizzate, colonne personalizzate ecc. Sentitevi liberi di scrivere i vostri preziosi suggerimenti.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.