Custom field WordPress: usare i campi personalizzati in WordPress

By  /  Seguimi su:     

Custom field WordPress: come usare i campi personalizzati in WordPress.

Non sai cosa sono i Custom field WordPress? Oppure non sai come aggiungere un custom Field in un post WordPress? In questo articolo ti spiego cosa e come usare i campi personalizzati WordPress.
Quando entriamo in WordPress e scriviamo un post abbiamo a disposizione molti campi che possiamo selezionare o configurare secondo le nostre esigenze, ad esempio abbiamo un titolo, il contenuto del post, il permalink, la data di pubblicazione, il formato del post, le categorie, i tags, etc, etc.

Però anche se la maggior parte delle volte questi campi possono bastare potremmo avere delle esigenze in cui ne necessitiamo di altri.

Per aggiungere nuovi campi personalizzati ad un post o anche ad un custom post type possiamo utilizzare delle funzioni specifiche messe a disposizione da WordPress. Come vedremo ci sono anche casi molto semplici dove non abbiamo neanche bisogno di programmazione per quanto riguarda la parte admin e possiamo usare un metabox standard del core. In ogni caso questi campi che aggiungeremo vengono chiamati Custom Fields.

I campi personalizzati o custom field sono uno degli strumenti più potenti e utili di WordPress. Sicuramente avrai sentito parlare in vari tutorial dei cosiddetti custom field WordPress. Non sai cosa sono i custom field WordPress? Oppure non sai a cosa servono e perché usarli?

Bene in questo articolo di oggi parleremo proprio dei custom field WordPress.

Partiamo col dire che i custom field sono dei campi personalizzati in WordPress (traduzione in italiano). Sono dei campi che compaiono nel dettaglio di un articolo ed è posto sotto ai trackback e/o il riassunto della scheda.

Fatta questa premessa iniziamo a dire a cosa servono e perché usare i custom field WordPress.

Se non dovessero essere visibili, è sufficiente cliccare su “impostazioni schermata” in alto e spuntare l’opzione “Campi personalizzati”.

I custom field WordPress a cosa servono?

I custom field servono per aggiungere dettagli maggiori a un post particolare. Queste ulteriori informazioni vengono chiamate meta-data. Questi meta-data possono includere parti di informazioni quali per esempio dei valori testuali o anche inserire un’immagine per poi essere richiamati all’interno del tema.

I custom field WordPress come usarli?

I meta-data o anche custom field sono composti nel dettaglio da due parti: Key e Value o meglio in italiano Chiave o anche (Nome) e Valore.

La chiave è il nome dell’elemento del meta-data. Il valore è l’informazione che apparirà nella lista dei meta-dati su ogni singolo post con l’informazione associata (può essere del semplice testo, link o shortcode o anche un immagine).

Come avete visto dall’immagini in allegato sopra ho creato due campi personalizzati campo-1 e campo-2. Come vanno inseriti i custom field? Cosa bisogna fare per visualizzare i custom field nel tema WordPress?

Basta aggiungere il nome della chiave e il valore e cliccare sul pulsante aggiungi campo personalizzato, ripetere l’operazione anche per i futuri campi personalizzati. Una volta aggiunti i campi personalizzati che ci servono, nei futuri inserimenti di nuovi articoli questi compariranno in un menu a tendina in modo che il nome della chiave non bisogna riscriverlo da campo.

Il nome della chiave è importante poiché sarà il nome che verrà inserito nel tema per ricavare il valore stesso di quel determinato articolo quando verrà visualizzato.

Per richiamare i campi personalizzati bisogna utilizzare la funzione get_post_meta() 

get_post_meta($post_id, $key, $single);

$post_id è l’id del post che si desidera recuperare i valori del campo personalizzato. $key è il nome della chiave per ricavare il valore. $single può essere true o false. Se è impostata su true la funzione restituisce un singolo risultato come una stringa. Se è impostato su false la funzione restituisce un’array di campi personalizzati.

Per inserire i custom field WordPress nel vostro tema e visualizzarli, dovete aprire il file single.php, e inserire dopo <?php the_content(); ?> cioè dopo il contenuto dell’articolo, il seguente codice:

<?php
 $campo1 = get_post_meta($post->ID, 'campo-1', true);
 if($campo1): ?>
 Campo-1: <strong>
 <?php echo $campo1;?>
 </strong>
 <?php
 endif;
 ?>
 <?php
 $campo2 = get_post_meta($post->ID, 'campo-2', true);
 if($campo2): ?>
 <br />
 Campo-2: <strong>
 <?php echo $campo2;?>
 </strong>
 <?php
 endif;
 ?>

Custom Fields WordPress: Metabox

Per associare un valore di “Custom Field” ad un post WordPress esistono diverse tecniche, prima abbiamo usato la più semplice, selezioniamo in alto la voce “impostazione schermata” e attiviamo l’opzione “campi personalizzati“.

come inserire i custom fields su WordPress

In questo post trovi un nuovo metabox che ti permette di inserire delle righe su cui indicare il “nome campo” e il valore per visualizzare un video al posto dell’immagine in evidenza al suo clic.

Tramite un metabox è possibile definire una specie di widget che è possibile visualizzare nel post in una posizione indicata e che conterrà i campi che ci interessano. Prima di indicare il codice PHP necessario vi allego una schermata con il risultato finale.

come creare dei custom fields su WordPress

Come potete notare questa soluzione non è solo più elegante rispetto alla precedente, ma risulta sicuramente più usabile e permette di inserire campi come le select, button radio etc.

Prima di proseguire vorrei chiarire un concetto generale sui nomi dei campi, infatti se vogliamo definire dei campi da visualizzare solo nel metabox e non nel form standard che abbiamo visto prima sopra, dobbiamo far iniziare il nome con un trattino basso, quindi i campi che useremo nell’esempio di seguito saranno _MyVideoYoutube e _MyVideoYoutubeStart.

Poniamo il caso che vogliamo inserire un Custom Field nel nostro post WordPress che identifichi il link di un video su youtube e il posizionamento iniziale espresso in secondi per la visualizzazione, una volta associati questi campi al post potremmo controllare nel nostro tema se esistono questi valori e sostituire la “feature image” con il codice embed del video

// Funzione per la definizione di un metabox e
// indicazione della funzione da richiamare
function add_metabox_video() {
  add_meta_box('metabox_video','video',
    'add_metabox_video_form','post','side','default');
}
// Funzione che disegna il form nel metabox
// inserendo i campi personalizzati che ci servono
function add_metabox_video_form()
{
  $URL   = get_post_meta(get_the_ID(),'_MyYoutubeVideo',true);
  $START = get_post_meta(get_the_ID(),'_MyYoutubeVideoStart',true);
  echo '<table class="form-table">';
  echo '<tr><td><label for="_MyYoutubeVideo">URL</label></td>';
  echo '<td><input type="text" name="_MyYoutubeVideo" ';
  echo 'id="_MyYoutubeVideo" value="'.$URL.'"></td></tr>';
  echo '<tr><td><label for="_MyYoutubeVideoStart">Start</label></td>';
  echo '<td><input type="number" name="_MyYoutubeVideoStart" ';
  echo 'id="_MyYoutubeVideoStart" value="'.$START.'"></td></tr>';
  echo '</table>';
}
// Funzione per salvare i nostri custom field che
// verranno letti con la funzione get_post_meta()
function save_metabox_video($id) {
  $fields = array('_MyYoutubeVideo','_MyYoutubeVideoStart');
  $return = check_metabox_video($id,$fields);
  if (is_array($return)) return $return; else return null;
}
// Funzione generale per esecuzione del salvataggio metabox su
// post selezionato con i valori che riguardano i custom fields
function check_metabox_video($id,$fields)
{
  // Se sono in fase di autosaving non salvo le informazioni legate al
  // custom field. Le informazioni sono salvate solo su conferma diretta
  if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
    return false;
  }
  // Controllo se nomi dei campi non sono dentro un array
  // Controllo se utente corrente può modificare il post
  if (!is_array($fields)) return false;
  if (!current_user_can('edit_post',$id)) return false;
  // Controllo se tutti i nomi dei campi specificati dentro un array
  // esistono come nome dei campi specificati su variabile $POST
  $custom = array();
  foreach ($fields as $key=>$value) {
    if (!isset($_POST[$value])) return false;
    $custom[$value] = trim($_POST[$value]);
  }
  // Lettura del nuovo array con i nuovi valori e aggiornamento
  // dei custom field legati al post in oggetto ($ID)
  foreach ($custom as $key=>$value) {
    $value = implode(',',(array)$value);
    if($value) update_post_meta($id,$key,$value);
      else delete_post_meta($id, $key);
    return $custom;
  }
}
// Associazione delle funzioni alle azioni
// di wordpress per la gestione del metabox
add_action('add_meta_boxes','add_metabox_video');
add_action('save_post','save_metabox_video');

Tramite questo codice PHP da inserire nel file function.php del vostro tema dovresti ottenere il risultato presente nella schermata precedente. Mi raccomando di cambiare il programma usato nel frontend in quanto i nomi dei custom field adesso contengono un trattino basso iniziale. Vi riporto qui di seguito lo stesso codice modificato:

// Durante il loop reperisco i valori dei custom fields
// tramite la funzione di wordpress get_post_meta()
$video = get_post_meta(get_the_ID(),'_MyYoutubeVideo',true);
$start = get_post_meta(get_the_ID(),'_MyYoutubeVideoStart',true);
// Se il campo video contiene un valore eseguo la funzione
// di inserimento codice embed altrimenti immagine
if (!is_null($video)) display_video_embed($video,$start)
  } else {else display_feature_image();

Conclusioni su: come gestire i campi personalizzati in WordPress

Oggi con questa guida hai imparato come usare i campi personalizzati in WordPress (custom field). Quello proposto nell’articolo era solo un esempio di custom field, io li ho utilizzati per altri mille scopi, come per esempio per associare un video, una galleria di prodotti, un form di iscrizione al blog (funzione molto interessante) …

Un altro modo più facile per creare dei campi personalizzati in WordPress è quello di usare il plugin: Advanced Custom Field

Tu usi i custom Fields su WordPress? Per cosa li usi o li userai?

Se la guida ti è piaciuta o ti è stata di aiuto condividila sui social network oppure lascia un commento nell’apposito box!

come creare un blog Wordpress
By Antonio Rizzo

Ideatore e fondatore di Creare Blog e Siti Wordpress. Consulente Wordpress per aziende e professionisti che desiderano promuovere i loro servizi o prodotti sul web attraverso un blog, sito web o ecommerce.


Ottieni anche tu tutti i vantaggi riservati agli iscritti di Creare Blog e Siti Web Wordpress!

Rispondi con un commento

  Segui i nuovi commenti  
Notificami