Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

[SOLUCIONADO] Insertar JavaScript en una página determinada de wordpress

Estas en el tema de Insertar JavaScript en una página determinada de wordpress en el foro de WordPress en Foros del Web. Hola Ante todo muchas gracias! El tema que me tiene desesperado es relacionado con el tópico de meter un código JavaScript en Wordpress. Os aseguro ...
  #1 (permalink)  
Antiguo 20/11/2013, 14:27
Avatar de mkh22  
Fecha de Ingreso: noviembre-2013
Mensajes: 5
Antigüedad: 5 años, 7 meses
Puntos: 0
Exclamación Insertar JavaScript en una página determinada de wordpress

Hola

Ante todo muchas gracias!

El tema que me tiene desesperado es relacionado con el tópico de meter un código JavaScript en Wordpress. Os aseguro que he rebuscado en éste magnífico sitio y en otros, probando numerosas formas y aún no consigo dar con la solución.

La cuestión es que editando las plantillas header.php y footer.php se consigue meter el dichoso link JavaScript pero el problema es que necesito ponerlo en sólo una pagina determinada, por lo que esa solución no me es válida.

La solución que más se acerca son los shortcodes con "Shortcode Exec PHP", que permiten hacer lo que busco. En el codigo HTML generado por wordpress de toda la pagina aparece la etiqueta <scrpt src=....>. Hay parecía ver la luz del asunto, pero el contenido de ese script está modificado, con código html de la pág padre... y ni rastro de mis sentencias... Hay entra mi desquicie... Os adjunto una imagen

Alguna sugerencia please?!
Una nueva forma de introducirlo, un error, una opción de wordpress... lo que sea jjaja
  #2 (permalink)  
Antiguo 20/11/2013, 14:56
Avatar de AlejandroGalvez  
Fecha de Ingreso: noviembre-2013
Mensajes: 189
Antigüedad: 5 años, 7 meses
Puntos: 49
Respuesta: Insertar JavaScript en una página determinada de wordpress

Añade el siguiente código al archivo functions.php de tu tema:

Código PHP:
function incrustar_archivo_javascript() {
    
    
//Esta variable debe contener el slug, la id, o el nombre de la página
    
$pagina    'mi-pagina';
    
    if ( 
is_page$pagina )  ) {
    
        
wp_enqueue_script'id-para-tu-script-da-igual-cual-sea''ruta-del-archivo-js-a-incrustar' );
    
    }
    
}

add_action'wp_enqueue_scripts''incrustar_archivo_javascript' ); 
Documentación sobre las funciones utilizadas:

http://codex.wordpress.org/Function_Reference/is_page
http://codex.wordpress.org/Function_Reference/wp_enqueue_script

Última edición por AlejandroGalvez; 20/11/2013 a las 15:10
  #3 (permalink)  
Antiguo 21/11/2013, 04:57
Avatar de mkh22  
Fecha de Ingreso: noviembre-2013
Mensajes: 5
Antigüedad: 5 años, 7 meses
Puntos: 0
Respuesta: Insertar JavaScript en una página determinada de wordpress

Muchísimas gracias AlejandroGalvez!

Es verdad, no había caido en filtrar la función para que solo la activara en la/las paginas que se necesita.

Aún así me queda la duda... ¿Los shortcodes entonces porqué no funcionan? Me parecen bastante funcionales para determinados casos.

Supuestamente tengo entendido que wordpress incorpora un filtro para eliminar código de texto almacenado en las BBDD, no? Y también tengo entendido que los shortcodes son capaces de saltarselo... Pero... hasta donde se puede modificar que wp te lo filtre, y qué es lo que desecha?

Muchisimas gracias
  #4 (permalink)  
Antiguo 21/11/2013, 05:31
Avatar de AlejandroGalvez  
Fecha de Ingreso: noviembre-2013
Mensajes: 189
Antigüedad: 5 años, 7 meses
Puntos: 49
Respuesta: Insertar JavaScript en una página determinada de wordpress

El objetivo de un shortcode es ejecutar una función que devuelva una cadena en formato html para acoplarlo al contenido de la entrada o página. Utilizar un shortcode para otra cosa es un error. Para ejecutar código ya disponemos de las anclas y add_action, como el ejemplo que te he indicado arriba.

Para aclararnos más, cuándo estaría bien usar un shortcode:

- Incrustar un vídeo en una entrada pasando el enlace.
- Mostrar un slider indicando las IDs de unas imágenes.
- Formatear un texto para que tenga apariencia de código (highlight).

Y en definitiva cualquier función que tras indicarle unos datos, los procesara y generara una respuesta en html que se concatenará al resto del contenido.

En cuanto a tu duda sobre la ejecución de estos shortcodes... La magia es simple, WordPress recupera el texto plano guardado en la base de datos y lo recorre enterito carácter a carácter. Si se llega a encontrar algo como "[soy_un_shortcode parametro=valor]" comprobará si esto es un shortcode registrado, y de ser así, llamará a la función que tenga asignada pasándole el parámetro indicado. La función entonces deberá devolver una cadena html y WordPress sustituirá el texto plano del shortcode por esta nueva cadena.

La sustitución se ejecuta a la hora de mostrar el contenido, no al guardarlo, con la función the_content().
  #5 (permalink)  
Antiguo 22/11/2013, 08:15
Avatar de mkh22  
Fecha de Ingreso: noviembre-2013
Mensajes: 5
Antigüedad: 5 años, 7 meses
Puntos: 0
Respuesta: Insertar JavaScript en una página determinada de wordpress

Muchisimas gracias por aclararme el tema!!!

Te estoy enormemente agradecido, estoy iniciandome el manejo del code de wordpress y ésta es una de las cosas que no me quedaba clara del todo!

Etiquetas: javascript+php, shortcode, wordpress-plugins
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:42.