I Custom Fields di Wordpress sono degli attributi che possiamo associare ad ogni singolo post del nostro blog. Essi si trovano nella pagina “Write Post”, tra le opzioni in basso.
Attraverso essi possiamo specificare dei comportamenti associabili al post, senza per questo dover realizzare del plugin che comporterebbero più tempo e quindi soldi.
Un pratico esempio di utilizzo dei Custom Fields è associare ad un singolo post un indirizzo dove per esempio compare una mappa del luogo che descriviamo nel post. Come fare ciò? Creaiamo un Custom Field mettendo come key mappa e valore un indirizzo di Google Maps.
A questo punto andiamo a modificare il template del nostro blog modificando i files index.php, archive.php, single.php, page.php.
In ognuno di essi compare la riga dove viene specificato il titolo del post. Prima di questa riga inseriamo il seguente codice:
<?php
$mappa = get_post_meta($id, 'mappa', true);
if ($mappa != '') {
echo "<a href='".$mappa."' class='mappa' alt='Mappa'
title='Mappa'>Mappa</a>";
}
?>
Cosa fa questo codice PHP? La funzione get_post_meta() è fornita da Wordpress, e ritorna - dati gli attributi scritti - il valore del Custom Field chiamato ‘mappa’ del post $id, cioè quello corrente. Quindi se il valore di questo Custom Field è diverso da ” (niente), inserisco nel codice HTML un tag a, che riporta un collegamento alla mappa indicata.
L’attributo class ci permette di associare uno stile, nel CSS, a questo elemento. Una particolarità va detta per il file index.php dove la riga di determinazione dell’id del post sarà modificata così
id="post-<?php $id << the_ID(); ?>"
anzichè
id="post-<?php the_ID(); ?>"
A questo punto per ogni post che riporta il custom field “mappa” verrà visualizzato a fianco del titolo un collegamento alla mappa del luogo di cui parliamo. Possiamo mostrare una immagine della mappa, applicandola allo sfondo del tag a.mappa con i CSS.
Mappa a parte, questa idea è applicabile a innumerevoli situazioni, come illustrerò prossimamente in un esempio dedicato alla traduzione del blog, fatta in un modo un po fuori dal comune.
Avete altre idee su come utilizzare i Custom Fields?
Tags: Blog, Custom-Fields, PHP, WordpressArticoli correlati:




September 3rd, 2007 at 9:59 am
interessante!
non lo sapevo. ho imparato una cosa nuova
grazie!
ma è possibile vedere un esempio pratico?
ciao!
September 3rd, 2007 at 4:41 pm
Prego
Tra qualche settimana lancerò il blog anche in inglese, per cui avrò dei post tradotti in due lingue oppure scritti un una sola. Per associare i post in italiano alla loro traduzione inglese, creo un custom field in cui inserisco l’url del post tradotto. A questo punto grazie ad un istruzione CSS se esiste la traduzione metto una bandierina della lingua della traduzione, altrimenti niente.
L’idea dei custom fields mi è venuta proprio per cercare di risolvere il problema delle traduzioni.
September 3rd, 2007 at 11:23 pm
capisco.

ingegnoso!
complimenti ancora e grazie per aver condiviso questo post.
September 26th, 2007 at 12:28 pm
[...] I Custom Fields sono un meccanismo fornito da Wordpress per assegnare metadata ai post, direttamente dal backend di amministrazione. Ho scritto un post che fornisce ulteriori dettagli sui Custom Fields. [...]
February 24th, 2008 at 4:17 pm
Dunque, vediamo…
1) Aggiungere ulteriori optional excerpt in modo da diversificare l’estratto del post per:
meta tag description;
pagine delle categorie;
pagine dei tag;
2) se non utilizziamo plugin per il title tag, diversificare lo stesso dal titolo del post
3) inserire il link ad una licenza, se l’articolo in questione utilizza una licenza diversa da quella generalmente usata nel blog;
4) inserire il nomi di eventuali co-autori dell’articolo in questione;
Questi gli utilizzi che mi vengono in mente al momento, ma le possibilità sono infinite
February 24th, 2008 at 5:24 pm
Il punto 1) è molto interessante. In questi giorni sto pensando se eliminare la tassonomia per data ed inserire il nofollow in una tra categoria e tag, proprio per evitare la duplicazione del contenuto.
February 24th, 2008 at 5:40 pm
@Copes Flavio: già, peccato sia “impegnativo”, specialmente per blog non proprio nuovi :-S (io per fortuna ho sempre specificato l’optional excerpt…)