Site icon Tosolini.info

WordPress: come usare i campi personalizzati

I Campi Personalizzati, o custom fields in inglese, sono presenti all’interno di WordPress da moltissimo tempo. Sono una di quelle funzioni che probabilmente molti utenti di questo CMS / Blog Engine non sanno nemmeno che esista o non ne comprendono il suo scopo. Francamente io ho ignorato per molto tempo le custom fields poiché le spiegazioni nel codex riportavano esempi alquanto blandi e privi di interesse pratico. Tanto più che molti di questi esempi era possibile farli con una funzione specifica. In realtà i Campi Personalizzati permettono una flessibilità non indifferente in circostanze altrimenti complicate. Nella sostanza permettono di aggiungere dei marcatori ad un articolo affinché li si possa utilizzare o trattare “all’esterno” dell’articolo stesso.

Ad esempio si può marcare un articolo per farlo vedere in uno slider nella home page, creare un ordinamento molto personalizzato di post che non includano i classici metodi di data, categoria eccetera. Mostrare in home page alcuni post in modo arbitrario anziché affidarsi all’ordinamento per data. Ma qui nello specifico porterò la mia esperienza diretta, che è presente all’interno della sezione Escursionismo di questo sito.

Negli articoli relativi alle escursioni ho avuto la necessità di mostrare una mappa con il percorso da effettuare e offrire le previsioni del tempo correlate. Per farlo mi sono avvalso di due plugin specifici che di fatto “vivono di vita propria“. Infatti i dati immessi sono riutilizzabili e sono riutilizzati in altri post. Finché mostravo tutto quanto all’interno del corpo del testo, utilizzando gli appropriati shortcode, tutto era semplice. Ma per esigenze grafiche e per non fare una pagina lungo quanto un velo da sposa, avevo scelto di spostare queste informazioni dentro la barra laterale. Qui è sorto il problema, ovvero dovevo fare in modo che a quello specifico articolo si legassero quella specifica mappa e quelle specifiche previsioni tra le tante disponibili.

Ed è qui che sono intervenuti i Campi Personalizzati. Vediamo nello specifico come funziona un campo personalizzato. Durante la scrittura di un articolo, solitamente sul fondo della pagina, compare una sezione ben riconoscibile.

Se non la vedete è probabile che sia semplicemente nascosta. Per ovviare al piccolo inconveniente scorrete la pagina in cima fino a trovare, poco sotto la barra nera, il tab “Impostazioni Schermata“. Si abbasserà una tendina con una serie di opzioni a spunta, cercate per l’appunto “Campi Personalizzati” che sarà deselezionato, e con un clic del mouse apparirà in fondo alla pagina.

Analizzando la sezione vediamo che ci sono due campi, uno a tendina sotto la colonna “Nome” e l’altro campo libero sotto “Valore“. Ovvero ci troviamo davanti ad una notazione classica delle variabili, “chiave = valore”. Il campo Nome una volta impostato sarà registrato nel DataBase e sarà riportato le volte successive, quindi è bene scegliere con perizia, in particolare è bene non creare spazi o utilizzare caratteri esotici.

Con il tasto “Aggiungi Campo Personalizzato” andremo ad inserire una nuova riga Nome / Valore dove il Nome può essere anche lo stesso con ovviamente valori diversi. In questo ultimo caso duplicando il nome andremo persino a creare un array di dati.

Nel nostro caso, citato in precedenza, prendiamo in esame le previsioni del tempo. Andremo a premere “Aggiungi Nuovo“, il campo nome si trasforma da tendina in un campo di immissione testo cui  scriveremo “PrevisioniTempo“. Abbiamo registrato la nostra nuova chiave, che ripeto sarà riutilizzabile in futuro semplicemente richiamandola dalla tendina. Aggiungiamo il valore. Nel mio caso era l’ID dello shortcode, ad esempio poniamo che sia 101. Tenete presente che i valori richiamati possono essere di vario tipo, ad esempio la posizione e il nome di un file media: /wp-content/uploads/2015/01/prova.jpg .

Ora l’articolo dove stiamo scrivendo avrà un meta marcatore che sarà PrevisioniTempo = 101.
Nel tema, o nel widget nel mio caso, si potrà aggiungere il codice che richiama questo marcatore per poterlo trattare. Il codice di partenza è:


$nuovavariabile= get_post_meta($post->ID, ‘PrevisioniTempo’, true);

Analizzando il codice si vede che abbiamo creato una nuova variabile dove viene intercettato l’id del post corrente con $post->ID e il relativo campo personalizzato “PrevisioniTempo“. Questo avviene grazie alla funzione core get_post_meta, un involucro che permette proprio di intercettare i valori del Campo Personalizzato. Il valore true o false si riferisce al trattamento degli array. Infatti come già citato è possibile che ad una chiave vi sia più di un valore. Con False o senza citare nulla, verrà ritornato l’intero array di dati, con True solo il primo valore di questa chiave (Nome).

A questo punto nella creazione del mio widget ho semplicemente aggiunto una echo do_shortcode con la variabile appena creata come id. Facciamo un esempio pratico per essere più esaustivi. Lo shortcode del tempo dovrà essere [mioshortcodetempo id=”101″]. All’interno del codice ho semplicemente messo:


$nuovavariabile= get_post_meta($post->ID, ‘PrevisioniTempo’, true);
if ( !empty($nuovavariabile) ) {
 echo do_shortcode('[mioshortcodetempo id="'. $nuovavariabile . '"]');
} else {
 echo "previsioni del tempo non disponibili";
}

Il codice qui sopra mostra come recuperare il Campo personalizzato e trasformato in variabile. Se la variabile non è vuota, !empty, mostrerà lo shortcode dove la id è proprio il valore del Campo Personalizzato. Altrimenti mostra un avviso di non disponibilità. Piuttosto semplice non trovate?

Ricapitolando; abbiamo creato una chiave ed un valore che abbiamo associato ad uno specifico post. Nel codice che andrà messo nel tema abbiamo recuperato all’occorrenza l’associazione del post con la chiave e il suo valore per poi trattarla come meglio ci aggrada. Questo era un esempio pratico per far capire (spero di esserci riuscito perché è più difficile spiegarlo che farlo) come i Campi Personalizzati certamente non sono fondamentali nell’utilizzo di WordPress, ma lo sono nel momento in cui desideriamo, appunto, personalizzare il nostro sito e i dati in esso raccolti.

Exit mobile version