Crea un tipo di post personalizzato per WordPress

Autore: Monica Porter
Data Della Creazione: 14 Marzo 2021
Data Di Aggiornamento: 17 Maggio 2024
Anonim
Come creare un tipo di contenuto personalizzato per un sito web immobiliare sviluppato con Wordpress
Video: Come creare un tipo di contenuto personalizzato per un sito web immobiliare sviluppato con Wordpress

Contenuto

  • Conoscenza necessaria: PHP, esperienza con WordPress
  • Richiede: WordPress v3.1 +
  • Tempo del progetto: 20 minuti
  • File di supporto

I tipi di post personalizzati sono stati introdotti in WordPress v3.0 per consentire agli sviluppatori di aggiungere facilmente diversi tipi di contenuto ai loro plug-in e temi, consentendo di estendere facilmente WordPress e renderlo più simile a un CMS.

In questo tutorial vedremo esattamente cos'è un tipo di post personalizzato di WordPress e come utilizzarli immediatamente nei plug-in e nei temi.

01. Che cosa sono i tipi di post personalizzati di WordPress?

Nella sua forma più semplice un tipo di post personalizzato di WordPress è una rappresentazione di un tipo di contenuto. Non essere confuso dal fatto che ha "post" nel titolo. Può letteralmente rappresentare tutto ciò che vuoi. Quindi, ad esempio, WordPress ha diversi tipi di post predefiniti integrati:

  • Messaggi
  • Pages
  • Allegati
  • Revisioni
  • Menu di navigazione

Prova a pensare al tipo di post personalizzato di WordPress come un modo per manipolare i contenuti nello stesso modo in cui faresti un post di un blog, ma con molto più controllo su come vengono visualizzati. Come avvertimento, se stai semplicemente cercando di classificare i tuoi contenuti in modi diversi, considera l'utilizzo di categorie, tag o tassonomie personalizzate prima di iniziare a creare tipi di post personalizzati.


02. Come creo un tipo di post personalizzato per WordPress?

Creare un tipo di post personalizzato per WordPress è in realtà incredibilmente semplice e quando vedi quanto lavoro fa WordPress per te, inizierai a capire quanto possono essere potenti. Nel file functions.php del tuo tema, inserisci il seguente codice:

add_action (’init’, ’create_post_type’);
funzione create_post_type () {
register_post_type (’book’,
Vettore(
’Etichette’ => matrice (
’Name’ => __ (’Books’),
’Singular_name’ => __ (’Libro’)
),
"Public" => true,
’Has_archive’ => true
)
);
}

Questo è letteralmente tutto ciò di cui hai bisogno per creare un tipo di post personalizzato WordPress. Nell'esempio sopra stiamo creando un post type personalizzato chiamato "book", che useremo per creare un database di libri. Gli diamo alcune etichette, impostiamo alcune opzioni e siamo a posto.

L'esempio sopra è estremamente semplice ma dimostra la semplicità della creazione di tipi di post personalizzati. Ora, se vai al tuo pannello di amministrazione di WordPress, dovresti vedere una nuova voce di menu chiamata "Libri". Vai avanti e gioca con la nuova sezione "Libri". Poiché impostiamo "public => true", tutta l'interfaccia di amministrazione viene generata per noi da WordPress, rendendo la nostra vita molto più semplice.


03. Creazione di un database di libri

Nel nostro ultimo esempio abbiamo creato un tipo di post personalizzato WordPress molto semplice, ma stavamo solo raschiando la superficie di ciò che è possibile con i tipi di post personalizzati. Sporciamoci le mani e creiamo un vero e proprio post type personalizzato.

// Crea il tipo di post
add_action (’init’, ’create_post_type’);
funzione create_post_type () {
$ args = array (
’Labels’ => post_type_labels (’Book’),
"Public" => true,
"Publicly_queryable" => true,
’Show_ui’ => vero,
’Show_in_menu’ => true,
’Query_var’ => true,
’Rewrite’ => true,
’Capacità_type’ => ’post’,
’Has_archive’ => true,
'Gerarchico' => falso,
’Menu_position’ => null,
’Supports’ => array (’title’,
"Editor",
'autore',
'miniatura',
'estratto',
'Commenti'
)
);

register_post_type (’book’, $ args);
}

// Una funzione di supporto per la generazione delle etichette
funzione post_type_labels ($ singular, $ plural = ’’)
{
if ($ plurale == ’’) $ plurale = $ singolare .’s ’;

return array (
’Name’ => _x ($ plural, ’post type general name’),
’Singular_name’ => _x ($ singular, ’post type singular name’),
’Add_new’ => __ (’Aggiungi nuovo’),
’Add_new_item’ => __ (’Aggiungi nuovo’. $ Singular),
’Edit_item’ => __ (’Edit’. $ Singular),
’New_item’ => __ (’New’. $ Singular),
’View_item’ => __ (’View’. $ Singular),
’Search_items’ => __ (’Search’. $ Plural),
’Not_found’ => __ (’No’. $ Plural. ’Trovato’),
’Not_found_in_trash’ => __ (’No’. $ Plural. ’Trovato nel Cestino’),
’Parent_item_colon’ => ’’
);
}

// aggiungi il filtro per garantire che il libro di testo, o libro, venga visualizzato quando l'utente aggiorna un libro
add_filter ("post_updated_messages", "post_type_updated_messages");
funzione post_type_updated_messages ($ messages) {
globale $ post, $ post_ID;

$ messages [’book’] = array (
0 => "", // Non utilizzato. I messaggi iniziano dall'indice 1.
1 => sprintf (__ (’Libro aggiornato. A href ="% s "> Visualizza libro / a>’), esc_url (get_permalink ($ post_ID))),
2 => __ ("Campo personalizzato aggiornato."),
3 => __ ("Campo personalizzato eliminato."),
4 => __ ("Libro aggiornato."),
/ * traduttori:% s: data e ora della revisione * /
5 => isset ($ _ GET [’revision’])? sprintf (__ (’Libro ripristinato alla revisione da% s’), wp_post_revision_title ((int) $ _GET [’revision’], false)): false,
6 => sprintf (__ (’Libro pubblicato. A href ="% s "> Visualizza libro / a>’), esc_url (get_permalink ($ post_ID))),
7 => __ ("Libro salvato."),
8 => sprintf (__ ('Libro inviato. A target = "_ blank" href = "% s"> Anteprima libro / a>'), esc_url (add_query_arg ('preview', 'true', get_permalink ($ post_ID)) )),
9 => sprintf (__ (’Libro pianificato per: strong>% 1 $ s / strong>. A target =" _ blank "href ="% 2 $ s "> Anteprima libro / a>’),
// traduttori: pubblica il formato della data della casella, vedi php.net/date
date_i18n (__ (’M j, Y @ G: i’), strtotime ($ post-> post_date)), esc_url (get_permalink ($ post_ID))),
10 => sprintf (__ ('Book draft updated. A target = "_ blank" href = "% s"> Preview book / a>'), esc_url (add_query_arg ('preview', 'true', get_permalink ($ post_ID) ))),
);

restituire $ messaggi;
}


Allora cosa sta succedendo qui? Bene, prima di tutto stiamo creando il nostro tipo di post personalizzato e impostando la maggior parte delle opzioni disponibili con esso. Non spiegherò cosa fanno tutte queste opzioni qui perché il Codex di WordPress le spiega molto bene.

La seconda funzione che vedi è semplicemente una funzione di supporto che semplifica la generazione delle etichette che verranno utilizzate nell'amministratore di WordPress per il tipo di post personalizzato. Puoi impostare manualmente l'array $ labels se lo desideri, ma lo trovo più semplice e pulito.

Infine stiamo aggiungendo un filtro per modificare i messaggi aggiornati. Quindi ora ogni volta che WordPress mostra un messaggio di aggiornamento per questo tipo di post personalizzato, mostrerà le etichette giuste (invece di usare solo "post" tutto il tempo).

04. Visualizzazione dei nostri libri

Quindi ora abbiamo questo fantastico tipo di post personalizzato che possiamo gestire nell'amministratore di WordPress. Ma che dire della visualizzazione effettiva dei libri sul tuo sito? Bene, WordPress ti copre.

Esistono diversi modelli che possono essere utilizzati nei tuoi temi per visualizzare automaticamente il nostro contenuto di tipo di post personalizzato:

  • single- {posttype} .php - Allo stesso modo in cui i post vengono mostrati sulla propria pagina con single.php, i tipi di post personalizzati useranno il singolo- {posttype} .php se è disponibile. Quindi nel nostro esempio sopra potremmo creare un file single-book.php file e i post del prodotto verrebbero visualizzati utilizzando quel modello.
  • archivio- {posttype} .php - A partire da WordPress v3.1 puoi anche utilizzare un modello di tipo archivio. Allo stesso modo in cui i post vengono visualizzati nel proprio archivio con archive.php, i tipi di post personalizzati useranno archive- {posttype} .php se è disponibile.

Ora, avere questi file modello a nostra disposizione è fantastico, ma a volte è necessario essere un po 'più complicati e utilizzare una query personalizzata per un controllo dettagliato. Per fortuna, WP_Query ci copre consentendoci di specificare un parametro "post_type".

$ args = array (’post_type’ => ’book’, ’posts_per_page’ => 10);
$ loop = nuovo WP_Query ($ args);
while ($ loop-> have_posts ()): $ loop-> the_post ();
il titolo();
echo ’div>’;
il contenuto();
echo ’/ div>’;
endwhile;

05. Conclusione

Ora disponi di un database di libri completamente funzionante, che puoi controllare tramite l'area di amministrazione di WordPress, consentendoti di visualizzare i libri sul tuo sito WordPress. Questo tutorial serve solo come introduzione a ciò che può essere ottenuto con i tipi di post personalizzati. Sono una funzionalità incredibilmente potente di WordPress, quindi usali con attenzione, ma non aver paura di allungare la tua immaginazione: ci sono così tante cose che puoi ottenere facilmente usando i tipi di post personalizzati.

06. Ulteriori note

Prima di finire ci sono alcuni punti extra che vale la pena menzionare:

  • Quando si creano tipi di post personalizzati, è considerata una buona pratica anteporre al tipo di post un "spazio dei nomi" univoco per evitare conflitti con altri temi e plug-in. Anche se fai attenzione che la lunghezza totale del nome del tipo di post personalizzato non sia superiore a 20 caratteri, altrimenti accadranno cose strane.
  • Non utilizzare "wp_" come prefisso dello spazio dei nomi poiché è riservato ai nomi interni di WordPress.
  • Se ottieni 404 pagine quando provi per la prima volta a vedere i tuoi tipi di post personalizzati, niente panico. Visita semplicemente la pagina Impostazioni> Permalink e questo cancellerà le tue regole di riscrittura. Se sei un autore di plug-in, assicurati di svuotare le regole di riscrittura all'attivazione del plug-in.

Questo mi piaceva? Leggi questo!

  • Brillante selezione di tutorial su Wordpress
  • Crea un moodboard perfetto con questi suggerimenti professionali
  • La guida definitiva al design del logo
  • I nostri caratteri web preferiti e non costano un centesimo
Affascinante
Come Scanline VFX ha conquistato il mondo dell'acqua
Per Saperne Di Più

Come Scanline VFX ha conquistato il mondo dell'acqua

Que to articolo ti è tato offerto in a ociazione con Ma ter of CG, una nuova competizione che offre la po ibilità di lavorare con uno dei per onaggi più iconici di 2000AD. Ci ono grandi...
Il design piatto incontra i taccuini Moleskine incontra ... gli scacchi?
Per Saperne Di Più

Il design piatto incontra i taccuini Moleskine incontra ... gli scacchi?

appiamo che ei un grande fan dei tuoi taccuini. Il tuo amore per Mole kine e per i uperbi taccuini che non ono Mole kine fanno parte dell'e ere un grafico. Qui, il de igner belga Peter Baeten ha ...
Recensione: orologi BREDA Valor
Per Saperne Di Più

Recensione: orologi BREDA Valor

Gli orologi BREDA in eri cono un de ign minimali ta e curato in una fa cia di prezzo conveniente. Fai olo attenzione ad alcuni problemi di funzionalità. De ign artigianale Look accattivante e min...