Come ottenere il percorso del plugin in JS?

16 ott 2014, 11:15:14
Visualizzazioni: 14K
Voti: 3

Sto utilizzando il plugin wp-store-locator e voglio aggiungere il percorso della directory del plugin al mio JavaScript.

html = "<li data-store-id='" + id + "'><div><p>" + storeImg + "<strong>" + store + "</strong><span class='wpsl-street'>" + address + "</span>" + address2 + city + " " + state + " " + zip + "</p>" + moreInfo + "<span><a href='plugin-urlpath/store-listings.php' class='more-details'>Dettagli</a></span></div></li>";

return html;

Come posso fare questo? Il percorso del plugin è alla fine del codice html.

MODIFICATO:

Ecco cosa ho fatto:

wp_enqueue_script( 'wpsl-gmap', ( "//maps.google.com/maps/api/js?sensor=false&libraries=places&language=" . $this->settings['api_language'] ), false, '', true ); 
wp_localize_script('wpsl-gmap', 'wpsl-gmap', array('pluginsUrl' => plugins_url(,__FILE__)));

Poi ho aggiunto questa riga a wpsl-gmap.js

var href = wpsl-gmap.pluginsUrl + '/path/to/resource';
html = "<li data-store-id='" + id + "'><div><p>" + storeImg + "<strong>" + store + "</strong><span class='wpsl-street'>" + address + "</span>" + address2 + city + " " + state + " " + zip + "</p>" + moreInfo + "<span><a href='" + href + "' class='more-details'>Dettagli</a></span></div></li>";

Non dà errori, ma non mostra neanche la posizione del negozio.

NOTA Funzionava correttamente prima di fare queste modifiche.

0
Tutte le risposte alla domanda 1
1
10

Utilizza wp_localize_script() per passare qualsiasi tipo di dati ai tuoi script caricati, in questo caso abbiamo bisogno di plugins_url():

wp_enqueue_script('my-script', get_stylesheet_directory_uri() . '/js/my-script.js');
wp_localize_script('my-script', 'myScript', array(
    'pluginsUrl' => plugins_url(),
));

Ora avrai accesso a myScript.pluginsUrl nel tuo file script:

var href = myScript.pluginsUrl + '/path/to/resource';
16 ott 2014 18:44:15
Commenti

Innanzitutto, il secondo argomento di wp_localize_script è il nome dell'oggetto o della variabile che sarà accessibile in JS e questo nome dovrebbe contenere solo caratteri validi, mentre il trattino - non lo è, quindi prova con wp_localize_script('wpsl-gmap', 'wpslGmap' .. invece. In secondo luogo, non so se sia un errore di battitura, ma il primo argomento deve essere fornito in plugins_url() per passare il secondo argomento, quindi correggi il tuo codice in plugins_url('', __FILE__).

Ahmad M Ahmad M
16 ott 2014 21:11:30