¿Hay alguna manera de usar wp_enqueue_script () para los scripts en línea?
Estoy haciendo esto porque mi secuencia de comandos en línea depende de otra secuencia de comandos y me gustaría la flexibilidad de insertarla después de cargarla.
Además, es un script en línea porque estoy pasando variables php al javascript (como la ruta del tema, etc.)
Gracias por adelantado.
wp-enqueue-script
chrisjlee
fuente
fuente
wp_add_inline_script()
wp_add_inline_script con wordpress jquerySimplemente no lo convierta en un script en línea y luego pase los parámetros dinámicos como variables. Otto ha escrito una gran guía sobre cómo hacer esto de manera efectiva.
WordPress 3.3 también lo hará más poderoso: https://core.trac.wordpress.org/ticket/11520
fuente
Esta solución es similar a la respuesta de @ scribu , pero sigue la forma de
wp_enquque_script()
y colocará el script en el encabezado si sus dependencias se incluyen en el encabezado.Nota: esto utiliza el uso de funciones anónimas, pero para las versiones de PHP anteriores a 5.3 se puede convertir fácilmente a una clase.
fuente
Desde WordPress 4.5 puede usar wp_add_inline_script () :
fuente
La mejor manera que he encontrado es usar
wp_localize_script()
, como sugirió @scribu.Por lo general, decidí usar Javascript en línea porque necesitaba proporcionar algunas variables PHP a mi script. Esto se puede resolver con
wp_localize_script()
. Proporcionaré un ejemplo:Tiene una matriz
$aFoo
con algunas opciones y necesita pasarla a un script.Usando script en línea:
Utilizando
wp_localize_script()
:Entonces,
pathToScript/script.js
sería:De esta manera, ya no necesita scripts en línea.
fuente
scribu es absolutamente correcto. De todos modos, quiero agregar alguna información:
Quiero que mi función muestre un script una vez, sin importar con qué frecuencia se llame. Es una función relacionada con el contenido, por lo que no puedo esperar a ningún gancho. Utilicé información de scribus y algunas lecturas del núcleo de WP para llegar a esto:
Con este método, puedo imprimir una secuencia de comandos en línea una vez. En mi caso, tengo una función que crea un botón para compartir y necesita que se ejecute un script para todos los botones. Pero solo una vez.
fuente
echo
enfoque del guión en línea es cómo se construyó el tema Twenty Seventeen, al menos en un punto. Y también uso esta técnica. Funciona muy bien y le permite engancharse en diferentes lugares.