La community di WordPress è piena di eccitazione per il prossimo WordPress 3.0. Attualmente in Beta 2, WordPress 3.0 avrà molte nuove interessanti funzionalità, come un nuovo tema predefinito e una migliore gestione dei menu. Molto probabilmente la più eccitante di queste funzionalità è costituita dai tipi di post personalizzati. In questo tutorial parleremo della creazione e dell'utilizzo di tipi di post personalizzati per creare un tema solido.
Bene, secondo il codice WordPress:
"Post type si riferisce ai vari dati strutturati che vengono mantenuti nella tabella dei post di WordPress. I tipi di post personalizzati consentono agli utenti di creare e gestire facilmente cose come portfolio, progetti, librerie video, podcast, citazioni, chat e qualsiasi utente o sviluppatore posso immaginare."
Essenzialmente, ci consente agli sviluppatori di creare nuovi tipi di post simili ai post e ai tipi di pagina, che appaiono tutti nella navigazione principale nell'amministratore di WordPress. Ci sono molti vantaggi a questo; in particolare, non abbiamo più bisogno di plug-in per creare tipi speciali, possiamo costruire un tema che si basa meno sui campi personalizzati (come li conosciamo), e rendono la gestione del sito più semplice per i clienti e gli utenti non tecnici. Invece di dire loro di creare un "post" e assicurarti di compilare tutti i tipi di campi personalizzati per dire, musica, possiamo semplicemente dire loro di fare clic su "Musica" per aggiungere un nuovo post musicale.
In questo tutorial faremo:
Tutto questo verrà eseguito all'interno del file functions.php del nostro tema. Sto modificando il tema 3.0 di default, TwentyTen.
La prima cosa che faremo è dire a WordPress che vogliamo registrare un nuovo tipo personalizzato. Ecco il codice:
add_action ('init', 'product_register'); function product_register () $ args = array ('label' => __ ('Prodotti'), 'singular_label' => __ ('Prodotto'), 'pubblico' => true, 'show_ui' => true, 'capability_type '=>' post ',' hierarchical '=> false,' rewrite '=> true,' supports '=> array (' title ',' editor ',' thumbnail ')); register_post_type ('product', $ args);
La prima linea è un gancio per dire a WordPress che vogliamo chiamare la funzione product_register ()
durante l'inizializzazione. È in quella funzione che registriamo il nuovo tipo di post.
La funzione register_post_type ()
accetta due argomenti: il nome che vogliamo dare al nostro tipo di post e un elenco di argomenti usati per creare quel tipo di post, che inseriamo in un array chiamato $ args
. Puoi leggere esattamente quali sono tutti gli argomenti qui, ma voglio sottolineare quelli importanti.
Aggiungiamo i nostri input personalizzati per il nostro nuovo tipo. Poiché ora possiamo creare nuovi tipi di post, possiamo rendere i campi personalizzati più snelli per gli utenti che potrebbero non avere familiarità con WordPress come noi. Vale la pena notare che questa funzionalità è disponibile dal 2.5 e fino a questo punto, è stata utilizzata principalmente dagli sviluppatori di plugin. Qui stiamo per aggiungere un campo di prezzo.
ID); $ prezzo = $ personalizzato ["prezzo"] [0]; ?> ID, "prezzo", $ _POST ["prezzo"]); ?>
Ancora una volta, il primo paio di linee sono ganci per dire a WordPress quando vogliamo usare certe funzioni. La prima riga dice che quando il pannello di amministrazione viene inizializzato, chiama la funzione che abbiamo scritto, admin_init ()
. Questa funzione indica a WordPress di aggiungere un'area denominata "Opzioni prodotto" a qualsiasi post di tipo "prodotto" e di utilizzare la funzione meta_options ()
per stampare i campi del modulo. Puoi leggere ulteriori informazioni su add_meta_box qui. meta_options ()
otterrà quindi tutti i valori personalizzati preesistenti e stamperà il campo modulo. La seconda linea di azione afferma che quando un post viene salvato, chiama la nostra funzione save_price ()
, che usa update_post_meta ()
aggiungere o aggiornare un campo personalizzato chiamato "prezzo".
Il nostro ultimo passaggio nella creazione di un tipo completamente personalizzato sta dando nomi univoci alla sua categoria e modifica le etichette delle colonne. Innanzitutto, il nome della categoria personalizzata o "tassonomia".
register_taxonomy ("catalog", array ("product"), array ("hierarchical" => true, "label" => "Catalogs", "singular_label" => "Catalog", "rewrite" => true));
La funzione che usiamo è register_taxonomy ()
, che puoi trovare nel codice qui; è disponibile dal 2.8. In sostanza, stiamo dicendo che vogliamo creare un nuovo tipo di categoria chiamato "catalogo" che assoceremo al tipo "prodotto". L'ultimo argomento è una serie di informazioni simili a ciò che abbiamo visto register_post_type ()
funzione. Quando tutto è stato detto, avremo il termine "Catalogo" sotto il nostro menu Prodotti nell'amministratore di WordPress e si comporterà come le Categorie Post.
Successivamente, vogliamo creare un set personalizzato di colonne per il nostro tipo di prodotto.
add_filter ("manage_edit-product_columns", "prod_edit_columns"); add_action ("manage_posts_custom_column", "prod_custom_columns"); function prod_edit_columns ($ columns) $ columns = array ("cb" => ""," title "=>" Titolo prodotto "," descrizione "=>" Descrizione "," prezzo "=>" Prezzo "," catalogo "=>" Catalogo ",); restituisce $ colonne; funzione prod_custom_columns ($ column) global $ post; switch ($ column) case "description": the_excerpt (); break; case "price": $ custom = get_post_custom (); echo $ custom ["price"] [0]; break; case "catalog": echo get_the_term_list ($ post-> ID, "catalog", ",", ","); break;
Le prime due linee sono ganci per dire a WordPress che vogliamo colonne personalizzate per il tipo 'prodotto'. La prima riga dice che quando si stampano colonne per il tipo di prodotto, utilizzare quelle definite nella funzione prod_edit_columns ()
.
Nel prod_edit_columns ()
, abbiamo un array di valori-chiave in cui le chiavi sono utilizzate per fare riferimento a determinate informazioni di post, che definiamo nella seconda funzione, prod_custom_columns ()
. I valori in quella matrice sono le intestazioni di colonna. Potresti accorgertene prod_edit_columns ()
elenca cinque colonne, ma descriviamo solo le informazioni di visualizzazione per tre in prod_custom_columns ()
. "cb" e "title" fanno parte di un set di chiavi predefinite per cui WordPress ha già associazioni. WordPress non sa cosa siano gli altri tre, quindi tocca a noi definirli.
Non troppo malandato, giusto? E ora siamo finalmente alla parte divertente, il modello del tema. Per creare un modello di tema per un tipo di post personalizzato, assegniamo semplicemente il modello single-
ID); $ price = "$". $ Personalizzati [ "prezzo"] [0]; ?>>- =$price?>
Ho aggiunto questo codice al tema Twentyten in WordPress 3.0 Beta, in quanto è l'unico tema che supporta la nuova funzionalità, ovvero il sistema di menu. Ho copiato il template di single.php, lo ho rinominato single-product.php e ho sostituito tutto nel div di "content" con il codice sopra. Per testare il mio codice, sono passato a Temi-> Menu e aggiunto il nuovo tipo alla navigazione del mio sito. Quindi, ho fatto clic sul nostro tipo di post personalizzato.
Avvolgendo
Come ho detto in precedenza, WordPress 3.0 è ancora in beta (puoi farlo qui); quindi ci sono ancora alcuni bug da risolvere e alcune cose potrebbero cambiare nella versione finale. La cosa migliore che puoi fare è entrare e giocare con alcune delle nuove funzionalità per familiarizzare con gli aggiornamenti / modifiche. Da quello che ho visto finora, le cose sembrano piuttosto buone!