Usare i custom field di WordPress in maniera avanzata


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.

Come usarli

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.

Usarli in maniera avanzata.

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):

Info sull' autore:
Nato a Bologna, mi occupo della realizzazione grafica e dello sviluppo front-end di siti web e sono il fondatore di questo blog. Se vuoi segnalare qualche problema o hai qualche richiesta particolare invia una mail tramite il modulo contatti.
Leggi gli altri articoli di

13 Risposte per Usare i custom field di WordPress in maniera avanzata

  1. Gabriele Malaspina 30 giugno 2011 at 16:34 | Permalink | Reply

    Ottima chicca ;)

    • Francesco 1 luglio 2011 at 15:26 | Permalink | Reply

      Vero? anche secondo me è molto utile tanto quanto semplice usare.

  2. laborax 2 luglio 2011 at 15:58 | Permalink | Reply

    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

    • Francesco 3 luglio 2011 at 20:26 | Permalink | Reply

      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.

  3. marco 23 luglio 2011 at 15:11 | Permalink | Reply

    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

    • Francesco 24 luglio 2011 at 20:48 | Permalink | Reply

      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

      • marco 25 luglio 2011 at 11:32 | Permalink | Reply

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

        • Francesco 25 luglio 2011 at 18:46 | Permalink | Reply

          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.

          • marco 25 luglio 2011 at 19:26 | Permalink |

            in effetti non è proprio quello che cercavo, ma potrebbe essere una soluzione….
            Grazie per la dritta

  4. lUIGI 23 febbraio 2012 at 12:12 | Permalink | Reply

    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 ;)

    • Francesco 24 febbraio 2012 at 17:39 | Permalink | Reply

      grazie per avermi segnalato questo errore di distrazione, ho corretto.

  5. Orazio 6 maggio 2012 at 11:57 | Permalink | Reply

    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

Lascia un commento

Trackbacks