Temi WordPress 3.0 solidi usando i tipi di messaggi personalizzati

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.


Che cos'è un tipo di messaggio personalizzato?

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.

Iniziamo!

In questo tutorial faremo:

  • Crea un tipo di post personalizzato per i prodotti con i nostri input
  • Crea una "tassonomia" personalizzata per il tipo.
  • Creare un modello di tema per andare insieme al nuovo tipo.

Registra il tipo di messaggio personalizzato

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.

  • etichetta & singular_label: Queste sono le etichette che vogliamo vengano visualizzate nell'amministratore di WordPress. "label" apparirà nell'admin admin e ovunque che faccia riferimento a più voci di quel tipo (Modifica prodotti, ad esempio). 'singular_label' verrà visualizzato quando viene fatto riferimento a uno di quel tipo (Aggiungi prodotto, ad esempio).
  • capability_type: Questo indica a WordPress quale tipo nativo (post, pagina, allegato, revisione o nav-menu-item) si comporterà come il tipo personalizzato. Facendolo diventare un "post", possiamo fare cose come aggiungerlo a una categoria.
  • riscrivere: Dì a WordPress se (o come) applicare la formattazione dei permalink. Puoi inviare un booleano come abbiamo fatto, o qualsiasi array di argomenti per applicare un formato di permalink personalizzato al tipo.
  • supporti: Questo è tutto nella pagina di aggiunta / modifica che verrà visualizzata. Vogliamo avere un titolo, un editor (il contenuto) e immagini in miniatura. Successivamente, aggiungeremo i nostri input personalizzati mascherando abilmente i campi personalizzati come campi di input per il nostro tipo personalizzato.

Aggiungere i nostri input

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".


Categorie personalizzate e modifica colonne

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.


Creare il modello di tema

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-.php e aggiungilo al nostro tema. Nel nostro caso, questo sarebbe single-product.php. Qui ti mostrerò uno snippet di quella pagina che mostra tutte le informazioni che abbiamo aggiunto al nostro tipo di post personalizzato:

  ID); $ price = "$". $ Personalizzati [ "prezzo"] [0]; ?> 
>

-

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!