Slide 1

Slide 1 text

Sistemas en WordPress WPDB, AJAX, Custom Fields y otras magias César J. Aquino Maximiliano - @cesjam7

Slide 2

Slide 2 text

Cosas que no pensabas que se podían hacer con WordPress… y otras magias César J. Aquino Maximiliano - @cesjam7

Slide 3

Slide 3 text

bloginfo() César Jefferson Aquino Maximiliano cesaraquino.com.pe @cesjam7

Slide 4

Slide 4 text

bloginfo() César Jefferson Aquino Maximiliano 24 años (recién cumplidos) cesaraquino.com.pe @cesjam7

Slide 5

Slide 5 text

bloginfo() César Jefferson Aquino Maximiliano 24 años (recién cumplidos) Software Developer en Orange 612 cesaraquino.com.pe @cesjam7

Slide 6

Slide 6 text

bloginfo() César Jefferson Aquino Maximiliano 24 años (recién cumplidos) Software Developer en Orange 612 Bomberos voluntario (B105) cesaraquino.com.pe @cesjam7

Slide 7

Slide 7 text

bloginfo() César Jefferson Aquino Maximiliano 24 años (recién cumplidos) Software Developer en Orange 612 Bomberos voluntario (B105) Profesor de Programación y Base de Datos cesaraquino.com.pe @cesjam7

Slide 8

Slide 8 text

bloginfo() César Jefferson Aquino Maximiliano 24 años (recién cumplidos) Software Developer en Orange 612 Bomberos voluntario (B105) Profesor de Programación y Base de Datos Estudio Inglés - Intermedio 6 cesaraquino.com.pe @cesjam7

Slide 9

Slide 9 text

bloginfo() César Jefferson Aquino Maximiliano 24 años (recién cumplidos) Software Developer en Orange 612 Bomberos voluntario (B105) Profesor de Programación y Base de Datos Estudio Inglés - Intermedio 6 PHP & JS cesaraquino.com.pe @cesjam7

Slide 10

Slide 10 text

bloginfo() César Jefferson Aquino Maximiliano 24 años (recién cumplidos) Software Developer en Orange 612 Bomberos voluntario (B105) Profesor de Programación y Base de Datos Estudio Inglés - Intermedio 6 PHP & JS Si, me gustan los gatos cesaraquino.com.pe @cesjam7

Slide 11

Slide 11 text

¡Me acaba de decir que WordPress es solo para blogs!

Slide 12

Slide 12 text

Todos son muy buenos:

Slide 13

Slide 13 text

Sistemas Web & Páginas Web

Slide 14

Slide 14 text

WordPress por dentro Las tablas propias de WordPress

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

¡Metas everywhere! Y ahora tenemos wp_termmeta

Slide 17

Slide 17 text

Post Types Convierte tu WordPress en cualquier tipo de sitio web sin tener que reconstruir tu sitio

Slide 18

Slide 18 text

Tipos de sitio - Tienda virtual - Página de eventos - Foros - Red Social - Portafolio - Sitio de noticias

Slide 19

Slide 19 text

Post Types - Tienda virtual (productos) - Página de eventos (eventos) - Foros (topic) - Red Social (publicaciones) - Portafolio (servicio) - Sitio de noticias (noticia)

Slide 20

Slide 20 text

register_post_type( 'evento', array( 'Labels' => array('name' => 'Eventos', 'singular_name' => 'evento'), 'public' => TRUE, 'rewrite'=> array( 'slug' => 'evento'), 'has_archive' => TRUE, 'supports' => array( 'title', 'author', 'revisions') ) ); https://codex.wordpress.org/Function_Reference/register_post_type

Slide 21

Slide 21 text

Custom Fields Crea todos los campos personalizados que quieras y cuando quieras

Slide 22

Slide 22 text

https://codex.wordpress.org/Custom_Fields

Slide 23

Slide 23 text

Si, a veces también usamos plugins

Slide 24

Slide 24 text

Si, a veces también usamos plugins

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Crea custom fields de forma rápida y sencilla

Slide 27

Slide 27 text

WPDB Maneja tu Base de Datos a tu gusto

Slide 28

Slide 28 text

Porque a veces nos queda chico las tablas de WP Inserta, actualiza, elimina y consulta a tu gusto todas las tablas propias de WordPress o las que tu crees.

Slide 29

Slide 29 text

global $wpdb; $wpdb->insert("wp_my_table", array( 'iddetail' => 7, 'detail' => ‘Nuevo registro’, 'type' => 1, 'Date_register'=> date('Y-m-d H:i:s') )); $registros = $wpdb->get_results("SELECT * FROM wp_my_table WHERE type = 1" ); https://codex.wordpress.org/Class_Reference/wpdb

Slide 30

Slide 30 text

Paneles personalizados Crea lo que quieras sin restricciones

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

El panel de WordPress se ve bien, pero hay muchas cosas que se nos hace complicado desarrollar ahí

Slide 33

Slide 33 text

Ventajas de crear tu propio panel - Usar mis propios estilos - Formularios en cualquier lado - Urls personalizadas - Agregar diferentes pasos - Y más

Slide 34

Slide 34 text

Para más información visita mi diapositiva “Trayendo el wp-admin al front” https://speakerdeck.com/cesjam7/trayendo-el-wp-admin-al- front

Slide 35

Slide 35 text

Fin del espacio publicitario

Slide 36

Slide 36 text

Imagina todo lo que puedes hacer

Slide 37

Slide 37 text

Imagina todo lo que puedes hacer

Slide 38

Slide 38 text

Imagina todo lo que puedes hacer

Slide 39

Slide 39 text

$id = wp_insert_post( array( "post_title" => "Leslie Shaw lanzó indirecta contra Olinda Castañeda", "post_status" => "publish", "Post_type" => "chisme" )); add_post_meta ($id, 'importancia', 0); wp_redirect(get_permalink($id)); https://developer.wordpress.org/reference/functions/wp_insert_post/

Slide 40

Slide 40 text

¿Eso es todo no?

Slide 41

Slide 41 text

AJAX La magia de AJAX en nuestro WordPress

Slide 42

Slide 42 text

Por qué AJAX? Realiza consultas, registros y otras acciones sin recargar la página

Slide 43

Slide 43 text

Por qué AJAX? Realiza consultas, registros y otras acciones sin recargar la página [Ejemplos en vivo]

Slide 44

Slide 44 text

Para más información visita mi artículo “Manual para empezar con wp_ajax” http://cesaraquino.com.pe/2016/03/manual-para-empezar-con-wp_ajax/

Slide 45

Slide 45 text

Fin del espacio publicitario

Slide 46

Slide 46 text

Caché WordPress no solo es para sitios chicos

Slide 47

Slide 47 text

No es solo un trabajo para los plugins

Slide 48

Slide 48 text

if ( false === ( $ordenes = get_transient( 'ordenes_cache' ) ) ) { $ordenes = array(); $args = array( 'post_type' => 'orden', 'posts_per_page' => -1 ); query_posts ($filters); while(have_posts()){ the_post(); $orden = get_orden_listado(get_the_id()); array_push($ordenes, $orden); } wp_reset_query(); set_transient( 'ordenes_cache', $ordenes, DAY_IN_SECONDS ); } https://codex.wordpress.org/Transients_API

Slide 49

Slide 49 text

Otras magias - Hooks Haz que tu WordPress realice acciones mientras se ejecute otra. https://codex.wordpress.org/Plugin_API/Hooks

Slide 50

Slide 50 text

Otras magias - Filters Cambia alguna funcionalidad o valor de WordPress para tu comodidad. https://codex.wordpress.org/Plugin_API/Filter_Reference

Slide 51

Slide 51 text

Otras magias - Virtual pages Crea páginas sin necesidad de registrarlo en los ‘pages’ y evita que el cliente te destruya tu sitio. http://wordpress.stackexchange.com/questions/9870/how-do-you-create-a-virtual-page-in-wordpress

Slide 52

Slide 52 text

Otras magias - Url personalizado con variables Si, como cualquier framework genera las url a tu gusto. http://cesaraquino.com.pe/2016/06/rutas-personalizadas-en-wordpress/

Slide 53

Slide 53 text

Otras magias - Cron Programar procesos para que WordPress trabaje por ti https://codex.wordpress.org/Function_Reference/wp_cron

Slide 54

Slide 54 text

Otras magias - Búsquedas avanzadas Configura el buscado por defecto de WordPress para que agregue otros filtros. http://cesaraquino.com.pe/2016/07/incluir-custom-field-para-las-busquedas-de-wordpress/

Slide 55

Slide 55 text

Envía un tweet usando el hashtag #gatosendiapos y tu gato saldrá en una próxima presentación #gatosendiapos

Slide 56

Slide 56 text

Fin del espacio publicitario

Slide 57

Slide 57 text

wp_gracias() cesaraquino.com.pe twitter.com/cesjam7 github.com/cesjam7 pe.linkedin.com/in/cesjam7 speakerdeck.com/cesjam7 databomberos.com orange612.com César J. Aquino Maximiliano

Slide 58

Slide 58 text

wp_gracias() cesaraquino.com.pe twitter.com/cesjam7 github.com/cesjam7 pe.linkedin.com/in/cesjam7 speakerdeck.com/cesjam7 databomberos.com orange612.com César J. Aquino Maximiliano ¿Preguntas?