php - wp_enqueue_script - cómo cargar Javascript en Wordpress Plugin
wp_enqueue_script footer (4)
Está incluyendo HTML en su archivo .js y nunca agregó un punto y coma al final de la alerta (). Tal vez intente solo tener esto en su popup.js:
function popup(){
alert(''hello there this is a test popup'');
}
Y luego, en su HTML, agregue onload="popup()"
a la etiqueta del cuerpo.
¿Puede alguien mostrarme cómo incluir este archivo de JavaScript en mi plugin de WordPress? He intentado todos los métodos wp_enqeue_script () pero no ocurre nada.
bien aquí está mi código de complemento de ejemplo con comentarios que explican lo que me gustaría.
<?php
/*
Plugin Name: Ava Test
Plugin URI: http://#.com
Description: A plugin that is used for my javascript tests
Author: Ronny Kibet
Author URI: http://ronnykibet.com
version: 1.001
*/
include(popup.js);
/*when I include it this way, it works fine, but gives an error when I activate the plugin
''plugin generated 453 characters ...''
*/
function popup() {
$src = plugins_url(''popup.js'', __FILE__);
wp_register_script( ''popup'', $src );
wp_enqueue_script( ''popup'' );
}
/*
when I included it this way, plugin is activated but nothing happens.
*/
?>
este es el popup.js
<script type="text/javascript">
function popup(){
alert(''hello there this is a test popup'')
}
</script>
<body onload="popup()">
</body>
Entonces, ¿alguien sabe cómo llamar a este script para que funcione correctamente en el plugin de WordPress?
popup.js
solo debe popup.js
código JavaScript, no HTML. Pruebe esto (en popup.js
)
function popup(){
alert(''hello there this is a test popup'');
}
window.addEventListener(''load'',function(event){popup();},false);
O simplemente esto:
window.addEventListener(''load'',function(event){
alert(''hello there this is a test popup'');
},false);
Aprender a trabajar dentro de la estructura de WP puede ser frustrante.
Y, aprender a utilizar javascript puede ser aún más frustrante.
Entonces, todos aquí han contribuido con algo valioso, sin embargo, necesitas unir todo. Asi que:
Primero:
Elimine su línea de inclusión. No lo necesitas.
Segundo:
Asegúrese de que la variable $ src en su código sea, de hecho, la ruta correcta. Yo agregaría un:
echo $src;
Para PRUEBA si la ubicación es correcta.
Tercero: Aghoshx es correcto: DEBE tener la referencia del gancho:
add_action(''init'',''popup'');
(Desde que mencionaste la función emergente, eso es lo que puse; SIN EMBARGO, para evitar las colisiones de nombre de función con otras funciones y complementos de WP, te recomiendo que la cambies a algo más único, como aghoshx propuesto)
Cuarto: Verifique que su script esté CARGANDO. Después de hacer los pasos 1 a 3 anteriores, vaya a actualizar la página de WP y haga una "fuente de vista". Busque su archivo de script. Si estás en Firefox, puedes HACER CLIC en la url y se cargará. Si estás en IE, copia y pega la url en la barra de direcciones y verifica si tu archivo está ALLÍ (si es así, es cargando. Si NO, entonces NO está cargando el archivo correctamente, y necesita corregir la ruta que está configurando en la variable th $ src).
En quinto lugar: una vez que obtenga lo anterior, cillosis tiene razón; debe eliminar todo, PERO la función javascript (incluso elimina las etiquetas) del archivo javascript.
Finalmente: observe la respuesta de Martti Laines: debe vincular el evento utilizando su window.addEventListener sugerido, O BIEN modifique la etiqueta en su plantilla de php para que contenga onload = "popup" (como lo hizo en el archivo de script).
Una última sugerencia:
jQuery hace MUCHO más fácil. Es muy fácil incluir jQuery en tu plugin de WP. Simplemente agregue esto en su función emergente php:
enqueue_script(''jquery'');
¡Buena suerte!
Debe especificar cuándo debe producirse la carga, intente esto.
<?php
/*
Plugin Name: Ava Test
Plugin URI: http://#.com
Description: A plugin that is used for my javascript tests
Author: Ronny Kibet
Author URI: http://ronnykibet.com
version: 1.001
*/
add_action(''wp_enqueue_scripts'',''ava_test_init'');
function ava_test_init() {
wp_enqueue_script( ''ava-test-js'', plugins_url( ''/js/ava_test_.js'', __FILE__ ));
}
Además, hay errores en su JS, pero he visto la versión correcta en algunas respuestas, espero que esto ayude
Actualización: Hay un gancho llamado wp_enqueue_scripts, como lo menciona @brasofilo, que se debe usar en lugar de init para cargar scripts.