Introduzione ai custom fields in Wordpress
Per molti utenti di Wordpress i custom fields (o campi personalizzati) sono solamente quella misteriosa casella che si trova sul fondo della pagina di scrittura dei post che ci si è sempre chiesti a cosa servisse, ma che si ha sempre evitato di toccare per paura di fare danni.
Però se i programmatori di Wordpress la hanno sempre lasciata al suo posto c’è sicuramente un buon motivo (anzi, più di uno) che sarò felice di spiegarvi.
In questa breve guida cercheremo quindi di capire che cosa sono i custom fields e come possono essere utilizzati per migliorare il proprio blog.
Che cosa sono e come funzionano i custom fields
I custom fields permettono di assegnare informazioni aggiuntive ad un post in particolare (o anche ad una pagina), come per esempio un’immagine o un testo, che possono essere poi visualizzate dove si desidera all’interno del tema.
Un custom field è composto da due parti:
- key (chiave): è il nome che viene assegnato al campo personalizzato, deve essere inserito all’interno del tema e può venire selezionato nel menu a tendina nella pagina di scrittura dei post e associato ad un valore.
- value (valore): il valore è il vero e proprio campo personalizzato che va abbinato ad una chiave. Può essere un testo o un immagine e verrà visualizzato nella zona corrispettiva dove si trova il campo personalizzato all’interno del tema.
Per richiamare il campo personalizzato all’interno del vostro tema aggiungete il seguente codice dove desiderate che il custom field compaia:
<?php echo get_post_meta($post->ID, 'nome_campo_personalizzato', TRUE); ?>
Il codice può essere posizionato ovunque all’interno del tema poichè verrà richiamato solamente per il post per cui è stato creato (in base al valore $post->ID), e può ovviamente essere inserito all’interno di tag HTML per essere personalizzato attraverso l’uso dei CSS.
L’unica cosa che dovrete cambiare in questo codice è la chiave (key) del custom field (in questo caso ‘nome_campo_personalizzato’ ) dove potrete utilizzare il nome che più preferite (non dimenticate gli apici – altrimenti non funzionerà).
in questo modo la chiave che avrete sceltocomparirà nel menu a tendina del custom field di ogni post e li potrete inserire i valori che volete che compaiano per personalizzare il post.
Esempi pratici
Poichè sebbene teoricamente l’utilizzo dei custom field sia molto semplice, può non risulatre immediato capire come questa funzione possa essere effettivamente applicata. Ecco dunque due esempi pratici che potrete utilizzare per il vostro blog, e che vi potranno essere da spunto per ulteriori utilizzi dei campi personalizzati:
#1. Canzone del giorno
Se vi piace ascoltare della musica mentre scrivete un post potreste voler dire ai vostri lettori quale canzone vi ha accompagnato nella stesura del vostro ultimo articolo. Per fare questo potete utilizzare un custom field racchiuso magari in un box per metterlo in risalto, per esempio alla fine di un post o nella barra laterale.
Inserite quindi il seguente codice dove volete che il campo persnalizzato venga visualizzato:
<div><p><span>Canzone del giorno:</span><?php echo get_post_meta($post->ID, 'canzone', true); ?></p></div>
La chiave canzone comparirà quindi all’interno del menu a tendina nei custom field.
Ovviamente potrete poi modificare il campo personalizzato utilizzando i Css, per esempio cambiando il colore di sfondo, inserendo un bordo o rendendo il titolo in grassetto.
#2. Inserire un’immagine
Un’altra applicazione dei custom field all’interno di un tema è l’inserimento di immagini legate ad un post in posizioni particolare, come per esempio l’uso di thumbnail vicino agli estratti dei post in prima pagina o nella barra laterale.
Per fare questo utilizzate quindi il seguente codice (in questo caso se l’immagine non è presente non verrà visualizzato il campo personalizzato):
<?php $image = get_post_meta($post->ID, 'image', true);
if($image) : ?>
<img src="<?php echo $image; ?>" alt="<?php the_title(); ?>" />
<?php endif; ?>
In questo caso il custom field che verrà utilizzato (e che potete modificare a piacere) è stato nominato “image”.
C’è però un piccolo accorgimento da seguire per l’utilizzo delle immagini con i campi personalizzati : prima di poter inserire l’indirizzo dell’immagine da visualizzare nel custom field questa dovrà essere caricata su Wordpress. Questo può essere fatto utilizzando la Media Library oppure più semplicemente premendo il tasto “Inserisci immagine”, caricando l’immagine e poi copiando semplicemente l’indirizzo dove è stata salvata, senza inserirla nel post che si stà scrivendo.
Conclusione
Questi sono solo due esempi di come possono essere usati i custom field da cui però potete trarre spunto per applicare questa funzione in moltissimi altri modi all’interno di un tema modificando semplicemente il codice HTML o CSS.
Se avete domande o suggerimenti sui custom fields, i commenti sono come sempre a vostra disposizione. Alla prossima!


Io sul mio blog stavo tentando, senza per ora avere risultati nelle prove fatte, di inserire un video x (che mostro in un post y), automaticamente in home page, utilizzando i campi personalizzati.
qualche suggerimento?
@BECA ammetto di non aver mai provato, ma facendo una piccola ricerca ho trovato questo articolo per video presi da Youtube, forse ti può essere utile:
http://performancing.com/wordpress-tips/wordpress-hacks-using-custom-fields-auto-embed-youtube-videos
comunque approfondirò la questione…
Domanda, come faccio a ottenere i custom fields da un id particolare?
Ciao, io per il mio sito avrei scelto un template che richiede i campi aggiuntivi. In pratica dalle spiegazioni ho capito che per avere le immagini nello slide dovrei per ogni post inserire un nuovo campo agggiuntivo con l’ url dell immagine caricata nell apposita cartella. Ho provato diverse volte ma alla fine nessuna immagine. (si può vedere dal sito) Sono disperata perche il template mi piaceva molto. Avresti qualche consiglio da darmi? Grazie
a me non funziona…sei sicuro che il codice è giusto? io ho messo
<?php $screen = get_post_meta($post->ID, ’screen’, $single = true) ;
if($screen) ; ?>
<img src=”http://www.giorgioromano.it/picture/<?php echo $screen; ?>” height=”100″ width=”200″ /><?php endif; ?>
ma non va
Ciao,
Hai descritto in maniera davvero ottima il funzionamento e lo scopo dei custom fileds!
Io li sto provando in un blog di test ed effettivamente si riescono a fare cose decisamente interessanti.
Ho una domanda: mi farebbe comodo utilizzare, al posto delle classiche “text area” per inserire i valori dei custom fields, un editor (tipo TinyMCE o FCKEditor). Ho fatto u npaio di esperimenti cercando di utilizzare i comandi “the_editor()” e simili, ma con pessimi risultati e, purtroppo, in rete non ho trovato nulla a tal riguardo in rete.
Che tu sappia la cosa e’ fattibile ?