Vuoi ottenere i valori dei campi personalizzati usando uno shortcode? Sebbene esista probabilmente un plugin per questo, abbiamo creato un rapido snippet di codice che puoi utilizzare per ottenere il valore di un campo personalizzato con uno shortcode in WordPress.
Istruzioni:
Tutto quello che devi fare è aggiungere questo codice al file functions.php del tuo tema o in un plugin specifico per il sito:
add_shortcode('field', 'shortcode_field');
function shortcode_field($atts){
extract(shortcode_atts(array(
'post_id' => NULL,
), $atts));
if(!isset($atts[0])) return;
$field = esc_attr($atts[0]);
global $post;
$post_id = (NULL === $post_id) ? $post->ID : $post_id;
return get_post_meta($post_id, $field, true);
}
[field "my_key"] [field "my_key" post_id=1]
Nota: Se questa è la prima volta che aggiungi snippet di codice in WordPress, consulta la nostra guida su come aggiungere correttamente snippet di codice in WordPress, in modo da non compromettere accidentalmente il tuo sito.
Se ti è piaciuto questo snippet di codice, prendi in considerazione la possibilità di consultare i nostri altri articoli sul sito come: 10 migliori plugin per testimonianze di WordPress per aggiungere la prova sociale e come creare un modulo di contatto in WordPress.
Il mio ha semplicemente visualizzato la parola Array?
Ciao, ottimo snippet 🙂
È possibile visualizzare un messaggio di errore quando il file personalizzato non esiste?
È difficile individuare gli errori quando non c'è alcun output.
Cordiali saluti
Rudi
Qualche idea su come visualizzare un campo personalizzato come link?
Ho provato questo: test ma non funziona. Grazie.
Salve,
Funziona bene per i campi personalizzati dei plugin, grazie! Ma come si visualizzano i campi standard come "Titolo" o "Estratto"?
grazie mille. bel lavoro
Ciao Kasra, prego. Non dimenticare di seguirci su Facebook e Twitter. :)
Come rendere globale il valore di un campo personalizzato poiché non viene attivato nella meta description da rankmath.
Questo articolo mi ha aiutato molto. Molti ringraziamenti dal Vietnam.
Grazie, ha funzionato alla grande :)
grazie mille. funziona perfettamente
Sono contento che sia stato utile, Nail 🙂
Mamma mia – funziona perfettamente! Grazie mille! 🙂
Grazie per questo fantastico snippet, funziona a meraviglia?
Sono contento che abbia funzionato per te
Ciao
Non riesco a farlo funzionare. Devo modificare lo shortcode e sostituire le parole: my_key con il nome del mio campo personalizzato?
E devo cambiare qualcosa nel codice che hai messo in functions.php o incollarlo così com'è? Grazie mille
Ottimo snippet, grazie. Funziona benissimo nelle mie pagine prodotto woocommerce, ma non nel carrello e nel checkout. Qualsiasi consiglio su come risolvere questo sarebbe davvero apprezzato!
Non ho idea? 🙁
Ciao! Grazie per il codice.
È possibile personalizzare lo snippet per avere anche uno shortcode [field “my_key” page_id=1]?
Ciao Marco, se dovessi indovinare, stai usando il nome del campo personalizzato sbagliato. alcuni plugin usano un underscore prima del nome del campo personalizzato, ad esempio _description. questo viene fatto per nascondere i campi sul lato amministrativo.
puoi usare questo snippet nel tuo tema per visualizzare un elenco di tutti i campi personalizzati. Questo visualizzerà un avviso nell'area amministrativa nella schermata di modifica del post nell'area amministrativa e elencherà tutto. Puoi semplicemente rimuovere questo snippet quando hai il nome del campo personalizzato corretto.
http://wpsnipp.com/index.php/functions-php/show-absolutely-custom-fields-post/
No, “description” è il nome del campo, importato dal plugin “CultureObject”
Inserisco un nuovo “testfield” con il testo “textfield for post” nella schermata di modifica del post.
La “description” non viene visualizzata, il testo “textfield for post” è visibile.
Ho controllato nel database e entrambi i campi vengono visualizzati. Ad eccezione del testo/contenuto sono identici.
Perché un campo personalizzato importato da CulturObject si comporta diversamente da un campo personalizzato creato manualmente.
La differenza è che i campi che compilo manualmente (e che vengono visualizzati) sono nei post normali e i campi personalizzati importati da CultureObject sono nei Custom Post? (che non vengono visualizzati)
Questo è fantastico. Grazie mille!
Non produce nulla all'interno di un blocco di testo Grid Element, in un Post Grid (Visual Composer)
Grazie! Stavo cercando su Google negli ultimi 2 giorni!!!
Grazie per questo articolo, mi ha aiutato molto 🙂
Grazie per questo articolo, mi ha aiutato molto 🙂
[...] Fonte: http://wpsnipp.com/index.php/functions-php/get-custom-field-value-with-shortcode/ [...]
Quando si cerca di inserire il contenuto di un campo personalizzato all'interno di un altro shortcode, a seconda di come è impostato l'altro shortcode, si potrebbe fare a meno delle virgolette doppie?
Per esempio:
[my_field_name]invece di
[field "my_field_name"]In questo modo uno shortcode come questo potrebbe funzionare (giusto?):
[contact-form to="[my_field_name]"]Perché se uno shortcode con le virgolette è all'interno di uno shortcode con le virgolette, la roba delle virgolette/parentesi alla fine lo confonde (cioè non funziona).
Non vedo virgolette doppie nella tua funzione/snippet, quindi non ero sicuro.
Grazie mille!
Ho provato
[field]my_field_name[/field]e non ha funzionato.Domani pubblicherò i dettagli sugli shortcode annidati, dai un'occhiata, ti darà un'idea migliore di come deve funzionare con gli shortcode incorporati.
No, non puoi farlo, non funzionerebbe più. Cosa stai cercando di fare con gli shortcode annidati? L'annidamento degli shortcode non funzionerà comunque, si romperà e basta.
Kevin, penso che questo sia ESATTAMENTE quello che speravo di trovare. Grazie. Voglio essere sicuro di come usarlo. Quando useresti il secondo invece del primo? :
[field “my_key”][field “my_key” post_id=1]
Grazie.
Beh, se aggiungi lo shortcode a un post puoi usare [field “my_key”] my_key è il nome del campo personalizzato. L'altro metodo [field “my_key” post_id=1] ti permetterà di definire l'ID del post per ottenere il valore del campo personalizzato di un post specifico.
Potresti avere codice HTML in un campo personalizzato che viene "emesso"? Ad esempio:
Oggi è il giorno più bello del mondo.
Blah
[field “list_of_images”]
Le immagini sopra sono grandiose, non trovi?
Blah
[field “html_block1”]
Blah
[field “html_block2”]
Grazie per aver letto il mio blog.
E, giusto per essere chiari, se non aggiungi un "post_id=", estrarrà semplicemente il campo personalizzato per il post/pagina su cui ti trovi già - il post corrente, giusto?
1. Senza ID sì, estrarrà semplicemente il campo personalizzato del post corrente.
2. Non vedo perché non dovrebbe funzionare bene, dovresti essere in grado di inserire qualsiasi cosa nel campo e verrà visualizzato.
Suppongo che quello che sto chiedendo è se renderizza il contenuto del campo personalizzato come se fosse stato inserito nell'Editor Visuale o come se fosse stato inserito nell'Editor HTML.
No, renderizzerà l'HTML senza problemi.
Aggiungere questo codice in function.php ha disabilitato il mio sito web. Cosa stavo facendo di sbagliato?
Shovan Sargunam
dal team di http://tamilbabyname.org
Stai riscontrando errori?
Manca una A) nella riga 6, prima di return;
Funziona bene a parte quello 🙂
Fantastico grazie, ho aggiornato lo snippet,
[...] Questo post è stato menzionato su Twitter da wp_freak, WPSNIPP. WPSNIPP ha detto: #wordpress Ottieni il valore di un campo personalizzato con shortcode http://bit.ly/fWRRa3 #blog per favore RT 🙂 [...]