Cómo llamar la ruta de un plugin en JavaScript
Estoy usando el plugin wp-store-locator y quiero añadir la ruta del directorio del plugin a mi 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'>Más detalles</a></span></div></li>";
return html;
¿Cómo puedo hacer esto? La ruta del plugin está al final del html
.
EDITADO:
Esto es lo que he hecho:
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__)));
Luego añadí esta línea 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'>Más detalles</a></span></div></li>";
No está dando errores, pero tampoco me muestra la ubicación de la tienda.
NOTA: Funcionaba correctamente antes de hacer estos cambios.

Utiliza wp_localize_script()
para pasar cualquier tipo de datos a tus scripts cargados, en este caso necesitamos 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(),
));
Ahora tendrás acceso a myScript.pluginsUrl
en tu archivo de script:
var href = myScript.pluginsUrl + '/path/to/resource';

Primero, el segundo argumento de wp_localize_script
es el nombre del objeto o variable que será accesible en JS y este nombre solo debe contener caracteres válidos, y el guión -
no lo es, así que prueba con wp_localize_script('wpsl-gmap', 'wpslGmap' ..
en su lugar. Segundo, no sé si es un error tipográfico, pero el primer argumento debe proporcionarse en plugins_url()
para pasar el segundo argumento, así que corrige tu código a plugins_url('', __FILE__)
.
