Aggiungere shortcode all'interno del codice HTML Raw di Visual Composer
Sto utilizzando Visual Composer e ho inserito del codice HTML nell'elemento Raw HTML per una tabella prezzi personalizzata - ora vorrei poter utilizzare il plugin World Currency per mostrare i prezzi in diverse valute.
Lo shortcode per World Currency è:
[worldcurrency curr="EUR" value="25"]
Quando lo inserisco nel Raw HTML viene mostrato come testo esattamente come sopra.
Se lo inserisco usando:
<?php echo do_shortcode('[worldcurrency curr="EUR" value="25"]'); ?>
non viene mostrato nulla e controllando il sorgente l'intero echo risulta commentato nell'HTML.
Ho anche provato a inserire l'HTML in un blocco di testo ma elementi come i tooltip non funzionano più correttamente e quando inserito come testo anziché in modalità visuale perdo completamente la possibilità di modificare il testo.
Esiste un modo per utilizzare lo shortcode all'interno del Raw HTML o un altro elemento di Visual Composer che mi permetta di usare sia lo shortcode che l'HTML?

Quando osservi come funziona effettivamente do_shortcode()
, è questo:
do_shortcode( $content )
Dove $content
è definito come segue:
(string)
Contenuto in cui cercare gli shortcode
Quello che stai cercando di fare è echo
ciò che lo shortcode fa, portando a un'ipotesi errata. Non esiste una funzione magica che scopre il tuo shortcode. Lo shortcode è semplicemente un callback (una funzione o un metodo) associato a una stringa che puoi inserire tra parentesi quadre nel contenuto completo. Quando il contenuto viene letto durante il ciclo di vita/runtime e viene trovato, allora il callback associato viene eseguito al suo posto. Praticamente lo stesso che succede con le azioni e i filtri. Quindi
add_shortcode( 'bartag', 'bartag_func' );
permette questo
[bartag foo="bar"]
dove bartag_func
è il callback. Per esempio:
function bartag_func( $atts )
{
$args = shortcode_atts( array(
'foo' => 'no foo',
'baz' => 'default baz',
), $atts );
return "foo = {$args['foo']}";
}
Quello che stai (o dovresti) cercando è dove lo shortcode viene aggiunto con add_shortcode()
. Poi basta trovare il callback (per esempio la funzione bartag_func()
) ed eseguirlo o stamparlo
echo bartag_func();
Questo è tutto.
