I custom field (o campi personalizzati) di WordPress sono un modo per implementare in un articolo (post) o pagina qualsiasi tipo di informazione aggiuntiva, per esempio file allegati da scaricare, semplici informazioni testuali, link utili, check box etc, a seconda dei tuoi bisogni rispetto all’articolo in questione.
Il metodo più semplice per usarli è quello di inserire un Nome ed un Valore e cliccare su Aggiungi Campo Personalizzato, a questo punto il custom filed è implementato nell’articolo.

Ma ciò non basta, per fare in modo che compaia nell’articolo devi aprire il file apposito che gestisce gli articoli, molto spesso è il file single.php ed inserire all’interno di questa pagina la porzione di codice, dove vuoi che compaia il contenuto del custom field creato:
<?php the_meta() ?>
In questo modo tutti i campi personalizzati creati verranno visualizzati nell’articolo all’interno di un div di nome post-meta che ti servirà anche come base per assegnare delle regole CSS.
Ecco il link alla pagina ufficiale per approfondire l’ uso dei custom field su WordPress.
L’utilizzo dei custom field come nell’esempio sopra è molto semplice e allo stesso tempo sufficiente per svolgere la sua funzione, ma ha delle grosse limitazioni; infatti se volessimo inserire, ad esempio, degli allegati differenti per ogni articolo, ogni volta dovremmo scrivere a mano tutto il codice HTML nel campo valore dei custom field inserendo l’URL desiderato dentro l’attributo href dentro al tag a.
Possiamo risolvere questo problema e rendere i custom field più divertenti da usare creando delle istruzioni in PHP nella pagina dove vogliamo che vengano visualizzati, come detto prima single.php o page.php:
<?php if ( get_post_meta(get_the_id(), 'Titolo del custom field', true) ) : ?> <a href="<?php echo get_post_meta(get_the_id(), 'Nome', true) ?>" > Testo per il link </a> <?php endif; ?>
In pratica, se volessimo allegare un file PDF ad un articolo tramite i custom field e usando il metodo PHP indicato sopra potremo scrivere un codice del genere:
<?php if ( get_post_meta(get_the_id(), 'PDF', true) ) : ?> <a href="<?php echo get_post_meta(get_the_id(), 'PDF', true) ?>"> Scarica il PDF </a> <?php endif; ?>
In questo modo ogni volta che vorrai inserire un’allegato ad un’articolo tramite i custom field sarà suffciente scrivere nel campo Nome la parola PDF e nel campo Valore semplicemente l’URL del file PDF da allegare senza usare codice HTML, ecco il risultato (Da confrontare con la prima immagine per capire la differenza):

Ottima chicca
Vero? anche secondo me è molto utile tanto quanto semplice usare.
Molto utile davvero…
ti chiedo una cosa visto che sono tre giorni che ci sto dietro… e non ne vengo fuori
é possibile fare la stessa cosa nel file archive.php
ti ringrazio anticipatamente
Ciao, Secondo me non puoi perchè i custom field di WordPress gestiscono solamente post e pagine, però puoi fare in modo di richiamare i custom field anche dentro la pagina archive.php in maniera che se esiste un custom field per quel post allora potrà comparire anche dentro la pagina archive, per esempio affianco al titolo di ogni post.
Ciao Francesco,
articolo molto interessante. Pensi sia possibile sfruttare i custom field per recuperare dati tipo link Blogroll?
Mi spiego, in pratica nel campo valore dovrebbe comparire un combo box dal quale aggiungere il link scelto.
Grazie
Marco
Ciao Marco, non ho capito bene cosa intendi, comunque se vuoi richiamare link del tuo blogroll dentro ai custom field puoi implementare il codice del post, con la funzione di WordPress adatta http://codex.wordpress.org/Template_Tags/wp_list_bookmarks
Si devo richiamare l’elenco dei link nei custum field, così da poterne selezionare uno o più di uno, in base al post.
Devo modificare anche il file function.php?
Grazie per la disponibilità.
Allora Marco, per farsi si può fare, ma diventa una cosa abbastanza complessa da sviluppare.
intanto ti posso segnalare però questo plugin: http://wordpress.org/extend/plugins/wp-render-blogroll-links/
che ti permette di richiamare tramite shortcode dei link dal blogroll in base alla categoria oppure in base ad altri parametri, non è così preciso come avere una serie di checkbox da cui scegliere ogni singolo link ma è comunque una buona alternativa.
in effetti non è proprio quello che cercavo, ma potrebbe essere una soluzione….
Grazie per la dritta
Il codice presenta un piccolo errore ossia il “get_bloginfo(“siteurl”)”. Questo antepone il link del vostro blog al link del file da scaricare.
Modo corretto
<a href="">Scarica il PDF
Saluti ala prossima
grazie per avermi segnalato questo errore di distrazione, ho corretto.
ciao,
post interessante e utile, grazie.
Devo realizzare dei post x degli eventi e i custom field fanno al caso mio x inserire campi del tipo “data evento” e “luogo evento”,
se dovessi aggiornare il sito direttamente io non sarebbe un problema, ma visto che dovrò affidarlo a dei clienti, spiegargli la procedura diventa difficile e si finirebbe che poi dimentichino di inserire i campi.
E’ possibile preimpostare dei custom field nella pagina di gestione degli articoli? senza quindi dover scivere a manina variabile è valore?
cioè trovare disponibili già le label dei campi con la textarea accanto dove inserire il valore.
ciao grazie
Ciao Orazio. Per un progetto ho usato il plguin http://wordpress.org/extend/plugins/custom-field-template/
ed il cliente si è torvato molto bene.