Aggiungere shortcode all'interno del codice HTML Raw di Visual Composer

7 feb 2015, 23:36:03
Visualizzazioni: 25.4K
Voti: 2

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?

0
Tutte le risposte alla domanda 1
0

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.

8 feb 2015 01:21:36