Abilitare gli shortcode per i campi personalizzati

15 giu 2015, 11:20:28
Visualizzazioni: 23.6K
Voti: 3

Quindi, in questo post viene spiegato come abilitare gli shortcode per i campi personalizzati in WordPress. (Gli shortcode non sono abilitati di default per i campi personalizzati.)

Quello che non capisco è dove inserire questo codice:

<?php echo do_shortcode(get_post_meta(get_the_ID(), 'name', true)); ?>

Capisco che devo inserire il nome del mio campo personalizzato nel parametro 'name', ma dove devo posizionare questa riga di codice?

Suppongo nel functions.php del template? Non sono sicuro dove inserirlo in quel file. Non voglio rompere nulla del mio template.

Ogni suggerimento è apprezzato.

2
Commenti

Non capisco davvero cosa stai cercando di fare. Gli shortcode non dovrebbero essere eseguiti all'interno di un custom field. Perché hai bisogno di fare questo? A proposito, se stai usando do_shortcode(), allora lo stai facendo nel modo sbagliato.

Pieter Goosen Pieter Goosen
15 giu 2015 11:30:35

Concordo che sia un design pessimo, ma all'interno del mio template al momento questa è l'unica soluzione per un certo problema. Ho bisogno di poter usare uno shortcode all'interno di un custom field. Deve essere possibile, no?

rails_has_elegance rails_has_elegance
15 giu 2015 11:48:46
Tutte le risposte alla domanda 1
5
10

Normalmente WordPress non esegue gli shortcode che inserisci in un campo personalizzato.

Per impostazione predefinita, i Campi Personalizzati visualizzano qualsiasi valore tu inserisca come testo semplice, quindi se provi a inserire uno shortcode (nel formato [shortcode] VALORE [/shortcode]) finirai per visualizzare l'intero testo, inclusi i tag.

Aggiungi il seguente codice nel tuo file template, che può essere single.php o page.php:

echo apply_filters('the_content', get_post_meta($post->ID,'NOME_DEL_TUO_CAMPO_PERSONALIZZATO', true));

oppure...

$shortcode = get_post_meta($post->ID,'NOME_DEL_TUO_CAMPO_PERSONALIZZATO',true);
echo do_shortcode($shortcode); 
15 giu 2015 16:58:25
Commenti

hm, non riesco a farlo funzionare. Devo ammettere che non ho la migliore comprensione di come funziona il framework WordPress sotto il cofano. Ho provato entrambe le soluzioni che mi hai suggerito, ma nessuna ha funzionato per me. Le ho provate nel file template page.php e nel file single.php. Incollate in alto all'interno del primo tag php. Forse il mio template semplicemente non può funzionare con questi codici. A proposito: sto usando il campo personalizzato sulla mia pagina blog dove tutti i post del blog vengono mostrati insieme in un formato anteprima.

rails_has_elegance rails_has_elegance
15 giu 2015 18:21:28

I campi personalizzati non funzionano correttamente nel Formato Anteprima. Dovresti salvare il tuo lavoro prima di testare.

Bruno Monteiro Bruno Monteiro
15 giu 2015 20:46:15

-1 Voto negativo Non usare shortcode https://kovshenin.com/2013/dont-do_shortcode/

Brad Dalton Brad Dalton
4 ago 2015 11:36:06

L'argomento di @BradDalton Kovshenin è che non dovresti usare do_shortcode() quando puoi usare direttamente la funzione di callback dello shortcode, quindi il consiglio non si applica alla domanda attuale. Quindi sto annullando il tuo voto negativo votando positivamente la risposta!

Bigue Nique Bigue Nique
7 nov 2018 18:04:31

Esiste un modo per farlo senza modificare un file template del tema, ad esempio tramite un semplice plugin?

Drewdavid Drewdavid
3 mag 2021 01:10:37