Partiamo col dire che i custom field sono dei campi personalizzati (traduzione in italiano).
Sono dei campi che compaiono nel dettaglio di un articolo quando, di solito è posto sotto ai trackback e/o il riassunto della scheda.
I custom field servono per aggiungere dettagli aggiuntivi 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 meta-data o anche custom field sono composti 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.
Come avete visto dalle immagini in allegato ho utilizzato 2 campi personalizzati campo-1 e campo-2 come sono stai inseriti? Facile 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 inserirli nel vostro tema dovete aprire il file single.php, e inserite dopo <?php the_content(); ?> così i campi personalizzati saranno inseriti dopo il contenuto dell’articolo, e aggiungere in questo modo:
<?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; ?>
Salve uso come tema Wootique, come posso far rimanere memorizzare i valori nei campi personalizzati?
Veramente un bel post, utile e complimenti per la precisione nella risposta ai commenti.
Ciao Domenico,
ho creato un Custom field di tipologia true/false, ho l’esigenza di creare una lista di categorie che rispettano il filtro.
Dalla lista poi devo poter cliccare su una specifica categoria e ritrovarmi la lista di post della relativa categoria ma sempre che rispettano il Custom field.
grazie per l’aiuto,
Emanuele
Interessantissimo…grazie
Mi sono scervellato un pò ma alla fine sono riuscito grazie al post e ai Vs commenti…
Ciao Domenico,
ho creato dei custom field all’interno dei miei post, si vedono correttamente e con lo stile css che ho impostato.
Come faccio a richiamarli anche nell’homepage del sito, insieme al testo dei post?
Grazie.
Ho già utilizzato questo sistema per personalizzare il css di un articolo.
Per quanto riguarda javascript, che codice devo inserire nella pagina single.php del tema? Mi puoi aiutare per cortesia?
Grazie.
ciao mi sto scervellano da giorni per far funzionare i campi personalizzati in questo modo.
nome campo personalizzato YOUTUBE valore URL DI UN VIDEO DI YOUTUBE
una volta creato un articolo, tramite il campo personalizzato YOUTUBE, sia possibile “stampare” in fondo alla pagina il logo di youtube che rimandi poi alla pagina del video.
nella pagina single.php inserisco questo codice
ID, ‘YOUTUBE’, true);
if($YOUTUBE): ?>
<?php echo '‘ ;?>
questo metodo lo vorrei usare anche per associare file pdf o file zip agli articoli del sito, ma così come è non funziona.
la funzione cerca il campo personalizzato ; se presente nell’articolo mi “stampa” l’icona del logo di YOUTUBE che diventa un link (se ci passo sopra con il mouse appare la manina) ma il link mi spedisce sulla pagina NOT FOUND di default del tema di wordpress che sto usando.
Qualcuno sa come aiutarmi?
GRAZIE MILLE
Simone
Ciao Simone,
non è troppo difficile la tua richiesta basta che fai questo prova ad utilizzare questo codice:
http://pastebin.com/jx5z0bCd
questo poi lo fai per tutti i tipi di campi personalizzati che vuoi creare
ti basta cambiare l’immagine
Ciao
Ciao,
è possibile inserire un video al posto dell’ ‘immagine in evidenza’ utilizzando i campi personalizzati?
Ho trovato un articolo a riguardo che suggerisce di inserire una stringa (qui sotto) nel single.php, ma sembrerebbe non funzionare.
Ti ringrazio per l’aiuto.
ID, ‘post-video’, true);
?>
ID, ‘large’);
}
?>
Per prima cosa creati il campo personalizzato in un articolo e nel campo nome metti post-video
Poi nel campo valore metti il link di condivisone di Youtube. Es. http://youtu.be/vItX0eCycdM
Poi nel file loop.php inserisci il codice sottostante prima di the_excerpt();
$video= get_post_meta($post->ID, 'post-video', true);
if( $video ):
$embed_code = wp_oembed_get( $video );
echo $embed_code;
endif;
Questo è quanto. Poi giustamente devi metterlo in un div con una dimensione tipo una miniatura altrimenti il video esce grande.
Ciao
Questo post è stato utilissimo anche a me, grazie mille! 🙂
Volevo chiederti una cosa, però. E’ possibile personalizzare lo stile della visualizzazione dei campi personalizzati? Costruirgli magari uno sfondo, modificare i font ecc, ecc?
Utilizzando la funzione the_meta, i comandi di riferimento per lo stile erano .post-meta e .post-meta-key.
Con get_post_meta sono gli stessi?
Grazie mille!
Ciao Valentina, sì è possibile personalizzarli, ti basta immettere un elemento html tra la variabile di output. Es. < div class="custom_meta"> < /div>
Ciao, mi è stato molto utile il tuo articolo, ti ringrazio! 🙂
salve
ma come si fà a far apparire la finestrella con scritto campi personalizzati?
grazie
sangiorgio
quando aggiungi un nuovo articolo in alto a destra trovi “Impostazioni schermo” cliccaci ti scorre un menù e clicca il checkbox Campi Personalizzati