La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

De cómo los desarrolladores (también) ganamos un Premio Ondas

Presentaciones similares


Presentación del tema: "De cómo los desarrolladores (también) ganamos un Premio Ondas"— Transcripción de la presentación:

1 De cómo los desarrolladores (también) ganamos un Premio Ondas

2 Agraciados con la tarea de desarrollo:
Natalia Díaz de Tudanca Carlos Bravo Bernal ¡Full Stack WordPress Development!

3 Los 5 marrones

4 Primera petición (marrón)
Quiero programas, temporadas y episodios Quiero mostrar una página para cada programa, temporada y episodio

5 Solución Programa: Custom Post Type Temporada: Custom Taxonomy con Slug para relacionar con el programa (doble validación) Episodio: Custom Post Type relacionado con los dos anteriores

6 Segunda petición (marrón)
Quiero un blog para el site Quiero un blog para cada programa

7 ¿Seguro que vas a escribir tanto como para necesitar un blog para cada programa?

8

9 Solución Blog del Site: Los posts de siempre Blog de cada programa: Custom Post Type vinculado con los programas Custom Taxonomies para los posts de programa

10 3 meses después… Mejor me lo pones todo en un mismo blog

11 Tercera petición (gran marrón)
No podemos perder la reproducción del audio en la navegación del site

12 TODA LA NAVEGACIÓN EN AJAX Sólo nos petó en: Contact Form 7
Solución TODA LA NAVEGACIÓN EN AJAX Sólo nos petó en: Contact Form 7 Visual Composer (petaban las columnas de ancho completo) Actualizar metas Revolution Slider

13 Cuarta petición Quiero tener campos donde poner datos que luego recoja la API para cargar el audio correcto y funcionalidades varias de Front

14 Advanced Custom Fields get_field(‘wadus’,$post->ID)
Solución Advanced Custom Fields get_field(‘wadus’,$post->ID)

15 Quinta petición (gran marrón)
Quiero que las urls sean: wadus.org/programa wadus.org/programa/temporada wadus.org/programa/temporada/episodio wadus.org/programa/blog wadus.org/programa/blog/post_programa

16 definir rewrites de los CPT add_rewrite_rule expresiones reguleras
Solución endpoints definir rewrites de los CPT add_rewrite_rule expresiones reguleras post_type_link Los endpoints los utilizamos para los archive de blog de cada programa, una página extra con información del programa (que apareció de la nada) y para una petición específica que nos hicieron.

17 add_rewrite_endpoint( 'blog', EP_PERMALINK );
add_rewrite_endpoint( 'sobre-el-programa', EP_PERMALINK ); add_action( 'template_redirect', 'wadus_endpoints_template_redirect' ); add_filter( 'request', 'wadus_rewrite_filter_request' ); Básicamente lo que hacemos con esto es añadir una nueva query variable a nuestra URL pero en plan bonito. Utilizando el hook de template redirect, podemos mostrar el contenido que queremos y como nosotros queramos para ese endpoint. Cuando añadimos el endpoint, es lo mismo que si añadieramos ?blog=foo En el filtro request, si existe la query variable, le damos el valor true y jugamos con el valor de la variable “blog” para poder paginar add_filter( 'request', 'wadus_rewrite_filter_request' ); function wadus_rewrite_filter_request( $vars ) { if( isset( $vars['blog'] ) ) if(empty($vars['blog'])) $vars['blog'] = true; } else $test = explode('page/', $vars['blog']); if(isset($test) && !empty($test[1])) $vars['pagina'] = $test[1]; if( isset( $vars['sobre-el-programa'] ) ) $vars['sobre-el-programa'] = true; return $vars;

18 Definimos los “comodines” de los CPT y las taxonomías: /%programa%
/%programa%/%temporada% add_rewrite_rule('([^/]+)/(?!blog)([^/]+)/([^/]+)/?$', 'index.php?post_type=micpt&micpt=$matches[3]','top'); Por otro lado, necesitábamos asociar cada elemento de manera unívoca una URL “bonita”, para eso utilizamos los comodines en el rewrite al registrar el custom post type Mediante la definición de las rewrites rules podemos relacionar nuestra URL “bonita” con el post concreto al que queremos ir. Para pillar el link correcto cuando se ejecute qet_post_permalink, lo tuneamos con el filtro post_type_link

19 add_filter('post_type_link', 'wadus_filter_post_link', 10, 3);
function wadus_filter_post_link($permalink, $post, $leavename) { if ( is_object( $post ) ) { $post_ID = $post->ID; $type = $post->post_type; if($type == 'micpt' && false === strpos( $permalink, '%programa%' ) ) return $permalink; } $permalink = str_replace( '%programa%' , $prog_name , $permalink ); $permalink = str_replace( '%temporada%' , $temp_name , $permalink ); Para pillar el link correcto cuando se ejecute qet_post_permalink, lo tuneamos con el filtro post_type_link Si es mi tipo de post, pero no aparece el comodín en el permalink, devolvemos el permalink tal cual. En nuestra función le damos el valor que nosotros queremos a esos comodines, en nuestro caso, a través de un campo de ACF obtenemos el nombre del programa y la temporada y los sustituimos en el permalink

20 ¿Y para cuando necesitas todo esto?

21

22 Pero no estuvimos solos :-)

23 Jefes de proyecto Diseñadores Gestores de contenido Gente de sistemas Locutores y editores de sonido etc...

24 El mayor gustazo es ver a la gente utilizando la plataforma que has creado,o escuchar a tus compañeros comentar programas de la web. Y... ¡nos han dado un Ondas!

25 ¡Gracias!


Descargar ppt "De cómo los desarrolladores (también) ganamos un Premio Ondas"

Presentaciones similares


Anuncios Google