SlideShare una empresa de Scribd logo
WordPress y
JavaScript
¡Hola!
Mi nombre es Juan Pablo De la torre Valdez
Desarrollador Web, Freelancer e Instructor en Udemy.
2
“
Learn JavaScript, Deeply
-Matt Mullenweg
State of the Word, WordCamp EU 2015
3
#WCGDL
JavaScript en
WordPress
Aunque el tema ha ganado
popularidad el último año,
JavaScript no es algo nuevo en
WordPress.
4
#WCGDL
WordPress ya utiliza
JavaScript
▫ Customizr.
▫ La Librería Multimedia.
▫ Las Revisiones de los Posts.
▫ Administración de Menús.
▫ Gutenberg.
▫ En cada versión nueva de
WordPress, JavaScript va
tomando más importancia.
Se puede integrar JavaScript a tus
Themes o Plugins personalizados. Así
como Aplicaciones Web.
5
#WCGDL
Agregar JavaScript en
tu Theme.
En un Theme (functions.php) :
<?php
function mitheme_scripts() {
wp_enqueue_script(
'filterizr',
get_template_directory_uri() . '/js/jquery.filterizr.js',
array('jquery'),
'1.2.3',
true
);
}
add_action(‘wp_enqueue_scripts’, ‘mitheme_scripts’);
6
#WCGDL
En un Plugin ( mi_plugin.php ) :
<?php
function miplugin_scripts() {
wp_enqueue_script(
'ga-recetas-js',
plugins_url( 'ga-rest-api.js', __FILE__),
array(),
'1.0.0',
true
);
}
add_action(‘wp_enqueue_scripts’, miplugin_scripts);
7
Agregar JavaScript en
tu Plugin
#WCGDL
wp_localize_script( $script, $nombre, $datos );
Función que se desarrolló para pasar
traducciones de texto.
Una excelente forma de pasar datos en PHP a
JavaScript.
Se utilizaba para llamados Ajax en WordPress
(WP-AJAX)
Pasar Datos de PHP a JavaScript
8
#WCGDL
Ejemplo con código.
9
En tu código PHP:
wp_localize_script(
'ga-recetas-js',
'ruta_rest_api',
array(
'url' => rest_url( 'wp/v2/recetas-api/' )
)
);
En tu código JS:
( function() {
const url = ruta_rest_api.url ;
// consultar con $.ajax, fetch o axios
})();
#WCGDL
WP REST API y
JavaScript
Con WP REST API puedes crear
aplicaciones web SPA o móviles con
cualquier tecnología que soporte
HTTP.
10
#WCGDL
WordPress REST API.
▫ Disponible desde la versión 4.7.
▫ Consumir y mostrar los datos en
cualquier lenguaje o Framework
Front End o Backend debido a la
respuesta JSON o crear
aplicaciones web o móviles.
▫ WP REST API provee los
endpoints o rutas para acceder a
los datos de tu sitio web.
11
Ejemplos de Endpoints o Routes
/wp-json/wp/v2/posts
/wp-json/wp/v2/posts/1
/wp-json/wp/v2/categories
/wp-json/wp/v2/tags
/wp-json/wp/v2/pages
/wp-json/wp/v2/comments
12
/wp-json/wp/v2/taxonomies
/wp-json/wp/v2/media
/wp-json/wp/v2/users
/wp-json/wp/v2/types
/wp-json/wp/v2/statuses
/wp-json/wp/v2/settings
http://www.tusitio.com/{ruta}
Ejemplo con AXIOS
1.- Enqueue a Axios y app.js
wp_enqueue_script( 'axios', get_template_directory_uri() . '/js/axios.js', array(), '0.9', true );
wp_enqueue_script( 'app', get_template_directory_uri() . '/js/app.js', array(), '1.0.0', true );
2.- Pasar a nuestro script los datos de PHP.
wp_localize_script( 'app', 'rest_url', array( 'url' => rest_url('/') ) );
3.- Leer los Posts y enviar petición con Axios. (app.js)
axios.get(`${ rest_url.url }wp/v2/posts`)
.then(respuesta => {
respuesta.data.map(post => console.log(post) )
});
13
No hay límites.
Gracias a WP REST API es posible realizar proyectos
que antes eran inimaginables en WordPress
14
#WCGDL
Gutenberg y JavaScript
▫ Permite crear un sitio web de
forma visual por medio de
bloques.
▫ Disponible a partir de la Versión 5
de WordPress ( se puede instalar
como Plugin).
▫ JavaScript y React son las
tecnologías más utilizadas para
Gutenberg.
▫ Si vendes un Theme o Plugins lo
ideal es que soporte Gutenberg.
15
#WCGDL
Cómo crear un bloque
de Gutenberg
En un Plugin (PHP) :
<?php
function mi_plugin_gutenberg_blocks() {
wp_enqueue_script(
'ga-block',
plugins_url('block.build.js', __FILE__),
array( 'wp-blocks', 'wp-i18n', 'wp-element'),
filemtime( plugin_dir_path( __FILE__ ) . 'block.build.js' )
);
}
add_action('enqueue_block_editor_assets',
‘mi_plugin_gutenberg_blocks’);
16
17
Cómo crear un bloque de Gutenberg (JavaScript)
// importamos elementos desde gutenberg
const { registerBlockType } = wp.blocks;
const { RichText } = wp.editor;
registerBlockType('plugin/nombre_bloque', {
title: 'Nombre del Bloque', // se mostrará en Gutenberg
icon: 'icono', // dashicon
category: 'formatting', // categoría de gutenberg
attributes: {}, // los datos u objetos del bloque
edit: () => {
// lo que se verá en el Editor de Gutenberg
},
save: () => {
// Cuando se guarda el bloque (render a los attributes)
  }
});
#WCGDL
¿Cuánto JavaScript
debo saber?
JavaScript Moderno (ES6+).
▫ Arrow Functions
▫ Template Literals
▫ Eventos
▫ Destructuring
▫ Modules
▫ Objetos y Classes
▫ Fetch API y Promises
▫ Async / Await
▫ React
▪ ReactDOM
▪ JSX
▪ State y setState
▪ Class y Functional Components
▪ Props
18
19
¡Gracias!
¿Tienes preguntas?
@JuanDevWP
fb.com/juan.delatorre.1257

Más contenido relacionado

La actualidad más candente

Introducción a web matrix
Introducción a web matrixIntroducción a web matrix
Introducción a web matrix
MICTT Palma
 
WordPress multi-idioma: WPML vs MultilingualPress
WordPress multi-idioma: WPML vs MultilingualPressWordPress multi-idioma: WPML vs MultilingualPress
WordPress multi-idioma: WPML vs MultilingualPress
WordPress Tarragona
 
Mi primera App con GAE
Mi primera App con GAEMi primera App con GAE
Mi primera App con GAE
GDG Lima
 

La actualidad más candente (18)

Consejos clave para_crear_proyectos_web
Consejos clave para_crear_proyectos_webConsejos clave para_crear_proyectos_web
Consejos clave para_crear_proyectos_web
 
Despliegue de aplicaciones web en Microsoft Azure
Despliegue de aplicaciones web en Microsoft AzureDespliegue de aplicaciones web en Microsoft Azure
Despliegue de aplicaciones web en Microsoft Azure
 
Andrea Olivera
Andrea OliveraAndrea Olivera
Andrea Olivera
 
Como colocar una radio a tu blogger
Como colocar una radio a tu bloggerComo colocar una radio a tu blogger
Como colocar una radio a tu blogger
 
myprofly
myproflymyprofly
myprofly
 
Cómo incrustar una página web en el TwinSpace
Cómo incrustar una página web en el TwinSpaceCómo incrustar una página web en el TwinSpace
Cómo incrustar una página web en el TwinSpace
 
Angular js Frontenders Valencia
Angular js Frontenders ValenciaAngular js Frontenders Valencia
Angular js Frontenders Valencia
 
Aplicando excepciones en java web
Aplicando excepciones en java webAplicando excepciones en java web
Aplicando excepciones en java web
 
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
 
Introducción a web matrix
Introducción a web matrixIntroducción a web matrix
Introducción a web matrix
 
Pres2
Pres2Pres2
Pres2
 
WordPress multi-idioma: WPML vs MultilingualPress
WordPress multi-idioma: WPML vs MultilingualPressWordPress multi-idioma: WPML vs MultilingualPress
WordPress multi-idioma: WPML vs MultilingualPress
 
Los mejores trucos para aumentar la velocidad en joomla!
Los mejores trucos para aumentar la velocidad en joomla!Los mejores trucos para aumentar la velocidad en joomla!
Los mejores trucos para aumentar la velocidad en joomla!
 
Angular - Introduccion
Angular - IntroduccionAngular - Introduccion
Angular - Introduccion
 
WordPress Multi-idioma - WPML vs MultiLingualPress
WordPress Multi-idioma - WPML vs MultiLingualPressWordPress Multi-idioma - WPML vs MultiLingualPress
WordPress Multi-idioma - WPML vs MultiLingualPress
 
Mi primera App con GAE
Mi primera App con GAEMi primera App con GAE
Mi primera App con GAE
 
Máquinas Virtuales en Microsoft Azure con C# .Net
Máquinas Virtuales en Microsoft Azure con C# .NetMáquinas Virtuales en Microsoft Azure con C# .Net
Máquinas Virtuales en Microsoft Azure con C# .Net
 
WPO: Lo que debes saber sobre como optimizar correctamente tu WordPress
WPO: Lo que debes saber sobre como optimizar correctamente tu WordPressWPO: Lo que debes saber sobre como optimizar correctamente tu WordPress
WPO: Lo que debes saber sobre como optimizar correctamente tu WordPress
 

Similar a WordPress y JavaScript

manual de jquery
manual de jquerymanual de jquery
manual de jquery
Angel Luna
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
cok12v
 
Servicios web
Servicios webServicios web
Servicios web
itoomac02
 
Servicios web
Servicios webServicios web
Servicios web
itoomac02
 
Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02
Josefina Moratalla
 

Similar a WordPress y JavaScript (20)

WordCamp Sevilla 2016 - Creación de un plugin con subida a WordPress.org
WordCamp Sevilla 2016 - Creación de un plugin con subida a WordPress.orgWordCamp Sevilla 2016 - Creación de un plugin con subida a WordPress.org
WordCamp Sevilla 2016 - Creación de un plugin con subida a WordPress.org
 
Introducción a VueJS
Introducción a VueJSIntroducción a VueJS
Introducción a VueJS
 
Dar lab1819
Dar lab1819Dar lab1819
Dar lab1819
 
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
 
Manual de jquery
Manual de jqueryManual de jquery
Manual de jquery
 
Jquery
JqueryJquery
Jquery
 
manual de jquery
manual de jquerymanual de jquery
manual de jquery
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
Gwt III - Avanzado
Gwt III - AvanzadoGwt III - Avanzado
Gwt III - Avanzado
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Cv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-webCv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-web
 
Ntics
NticsNtics
Ntics
 
Ntics- Acosta
Ntics- AcostaNtics- Acosta
Ntics- Acosta
 
Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02
 
Wordpress
Wordpress Wordpress
Wordpress
 
Test Unitarios y E2E front y Back
Test Unitarios y E2E front y BackTest Unitarios y E2E front y Back
Test Unitarios y E2E front y Back
 
WordPress como back-end de nuestras apps
WordPress como back-end de nuestras appsWordPress como back-end de nuestras apps
WordPress como back-end de nuestras apps
 
El universo JavaScript en Drupal 7
El universo JavaScript en Drupal 7El universo JavaScript en Drupal 7
El universo JavaScript en Drupal 7
 
Introducción a Zend Framework
Introducción a Zend FrameworkIntroducción a Zend Framework
Introducción a Zend Framework
 

Último

proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 

Último (20)

Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometria
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 

WordPress y JavaScript

  • 2. ¡Hola! Mi nombre es Juan Pablo De la torre Valdez Desarrollador Web, Freelancer e Instructor en Udemy. 2
  • 3. “ Learn JavaScript, Deeply -Matt Mullenweg State of the Word, WordCamp EU 2015 3
  • 4. #WCGDL JavaScript en WordPress Aunque el tema ha ganado popularidad el último año, JavaScript no es algo nuevo en WordPress. 4
  • 5. #WCGDL WordPress ya utiliza JavaScript ▫ Customizr. ▫ La Librería Multimedia. ▫ Las Revisiones de los Posts. ▫ Administración de Menús. ▫ Gutenberg. ▫ En cada versión nueva de WordPress, JavaScript va tomando más importancia. Se puede integrar JavaScript a tus Themes o Plugins personalizados. Así como Aplicaciones Web. 5
  • 6. #WCGDL Agregar JavaScript en tu Theme. En un Theme (functions.php) : <?php function mitheme_scripts() { wp_enqueue_script( 'filterizr', get_template_directory_uri() . '/js/jquery.filterizr.js', array('jquery'), '1.2.3', true ); } add_action(‘wp_enqueue_scripts’, ‘mitheme_scripts’); 6
  • 7. #WCGDL En un Plugin ( mi_plugin.php ) : <?php function miplugin_scripts() { wp_enqueue_script( 'ga-recetas-js', plugins_url( 'ga-rest-api.js', __FILE__), array(), '1.0.0', true ); } add_action(‘wp_enqueue_scripts’, miplugin_scripts); 7 Agregar JavaScript en tu Plugin
  • 8. #WCGDL wp_localize_script( $script, $nombre, $datos ); Función que se desarrolló para pasar traducciones de texto. Una excelente forma de pasar datos en PHP a JavaScript. Se utilizaba para llamados Ajax en WordPress (WP-AJAX) Pasar Datos de PHP a JavaScript 8
  • 9. #WCGDL Ejemplo con código. 9 En tu código PHP: wp_localize_script( 'ga-recetas-js', 'ruta_rest_api', array( 'url' => rest_url( 'wp/v2/recetas-api/' ) ) ); En tu código JS: ( function() { const url = ruta_rest_api.url ; // consultar con $.ajax, fetch o axios })();
  • 10. #WCGDL WP REST API y JavaScript Con WP REST API puedes crear aplicaciones web SPA o móviles con cualquier tecnología que soporte HTTP. 10
  • 11. #WCGDL WordPress REST API. ▫ Disponible desde la versión 4.7. ▫ Consumir y mostrar los datos en cualquier lenguaje o Framework Front End o Backend debido a la respuesta JSON o crear aplicaciones web o móviles. ▫ WP REST API provee los endpoints o rutas para acceder a los datos de tu sitio web. 11
  • 12. Ejemplos de Endpoints o Routes /wp-json/wp/v2/posts /wp-json/wp/v2/posts/1 /wp-json/wp/v2/categories /wp-json/wp/v2/tags /wp-json/wp/v2/pages /wp-json/wp/v2/comments 12 /wp-json/wp/v2/taxonomies /wp-json/wp/v2/media /wp-json/wp/v2/users /wp-json/wp/v2/types /wp-json/wp/v2/statuses /wp-json/wp/v2/settings http://www.tusitio.com/{ruta}
  • 13. Ejemplo con AXIOS 1.- Enqueue a Axios y app.js wp_enqueue_script( 'axios', get_template_directory_uri() . '/js/axios.js', array(), '0.9', true ); wp_enqueue_script( 'app', get_template_directory_uri() . '/js/app.js', array(), '1.0.0', true ); 2.- Pasar a nuestro script los datos de PHP. wp_localize_script( 'app', 'rest_url', array( 'url' => rest_url('/') ) ); 3.- Leer los Posts y enviar petición con Axios. (app.js) axios.get(`${ rest_url.url }wp/v2/posts`) .then(respuesta => { respuesta.data.map(post => console.log(post) ) }); 13
  • 14. No hay límites. Gracias a WP REST API es posible realizar proyectos que antes eran inimaginables en WordPress 14
  • 15. #WCGDL Gutenberg y JavaScript ▫ Permite crear un sitio web de forma visual por medio de bloques. ▫ Disponible a partir de la Versión 5 de WordPress ( se puede instalar como Plugin). ▫ JavaScript y React son las tecnologías más utilizadas para Gutenberg. ▫ Si vendes un Theme o Plugins lo ideal es que soporte Gutenberg. 15
  • 16. #WCGDL Cómo crear un bloque de Gutenberg En un Plugin (PHP) : <?php function mi_plugin_gutenberg_blocks() { wp_enqueue_script( 'ga-block', plugins_url('block.build.js', __FILE__), array( 'wp-blocks', 'wp-i18n', 'wp-element'), filemtime( plugin_dir_path( __FILE__ ) . 'block.build.js' ) ); } add_action('enqueue_block_editor_assets', ‘mi_plugin_gutenberg_blocks’); 16
  • 17. 17 Cómo crear un bloque de Gutenberg (JavaScript) // importamos elementos desde gutenberg const { registerBlockType } = wp.blocks; const { RichText } = wp.editor; registerBlockType('plugin/nombre_bloque', { title: 'Nombre del Bloque', // se mostrará en Gutenberg icon: 'icono', // dashicon category: 'formatting', // categoría de gutenberg attributes: {}, // los datos u objetos del bloque edit: () => { // lo que se verá en el Editor de Gutenberg }, save: () => { // Cuando se guarda el bloque (render a los attributes)   } });
  • 18. #WCGDL ¿Cuánto JavaScript debo saber? JavaScript Moderno (ES6+). ▫ Arrow Functions ▫ Template Literals ▫ Eventos ▫ Destructuring ▫ Modules ▫ Objetos y Classes ▫ Fetch API y Promises ▫ Async / Await ▫ React ▪ ReactDOM ▪ JSX ▪ State y setState ▪ Class y Functional Components ▪ Props 18