07 de Abril 2015: Ricardo Aiello - WordPress a Medida

26
WordPress a medida

Transcript of 07 de Abril 2015: Ricardo Aiello - WordPress a Medida

Ricardo AielloAnalista/Desarrollador

mecanismosde extensión

Mecanismos de extensión WordPress a medida

¿Por qué?

Si modificamos directamente el código de WordPress, de un plugin o de un theme, nuestros cambios se pierden al actualizarlo. Y no, ignorar actualizaciones no es una opción.

¿Cuándo?

child themes

Child themes WordPress a medida

Child themes WordPress a medida

childtheme

parenttheme

Child themes WordPress a medida

/*Theme Name: Cualquier theme - ChildDescription: Ejemplo genérico.Author: Ricardo AielloAuthor URI: http://wpargentina.org/Template: cualquierthemeVersion: 0.1Text Domain: cualquiertheme-child*/

@import url("../cualquiertheme/style.css");

/* Código CSS a partir de aquí */

Child themes WordPress a medida

<?php

/** * Código PHP aquí */

//Creamos una función personalizadafunction ctc_say_hello() { echo __( 'Hello!', 'cualquiertheme-child' );}

?>

Child themes WordPress a medida

<?php if ( !function_exists( 'ct_do_something' ) ) { function ct_do_something() { //Hacer algo }} ?>

Child themes WordPress a medida

<?php

/** * Código PHP aquí */

//Creamos una función personalizadafunction ctc_say_hello() { echo __( 'Hello!', 'cualquiertheme-child' );}

//Reemplazamos una función del parent themefunction ct_do_something() { //Hacer algo de manera diferente}

?>

Child themes WordPress a medida

<?php

/** * Plantilla alternativa para comentarios */

if ( post_password_required() ) { return;}

if ( comments_open() && post_type_supports( get_post_type(), 'comments') ) { //Muestro Facebook Comments} else { //Indico que no se puede comentar}

?>

hooks

Hooks WordPress a medida

Hooks WordPress a medida

Hooks WordPress a medida

● mesa_puesta

● bebida_servida

● milanesa_servida

● ensalada_servida

● cena_comenzada

● cena_terminada

Hooks: Actions WordPress a medida

<?php

//Cuando una persona termina de cenaradd_action( 'cena_terminada', 'wpa_lavar_platos', 10, 1);function wpa_lavar_platos( $persona ) { //Si esa persona es Pablo if ( $persona->nombre == 'Pablo' ) { //Le pedimos que lave los platos $persona->lavar( 'platos' ); }}

?>

Querido WordPress:

Cuando Pablo termine de cenar, ¿le pedirías que lave los platos?

¡Gracias!

Hooks: Actions WordPress a medida

<?php

//Cuando llegamos al final de la páginaadd_action( 'wp_footer', //$hook 'wpa_google_analytics', //$function 10, //$priority 0 //$arguments);function wpa_google_analytics() { //Si el usuario no inició sesión if ( !is_user_logged_in() ) { //Mostramos el código de Analytics ?> <!-- Aquí pegaríamos el código --> <?php }}

?>

Querido WordPress:

Cuando un usuario no registrado visite una página del sitio, ¿podrías añadir al final el código de Google Analytics?

¡Gracias!

Hooks: Filters WordPress a medida

<?php

//Cuando servimos la ensaladaadd_filter( 'ensalada_servida', 'wpa_condimentar', 10, 1);function wpa_condimentar( $ensalada ) { //Buscamos los condimentos global $aceite, $limon; //Los añadimos a la ensalada $ensalada = $ensalada + $aceite + $limon; //Continuamos sirviéndola return $ensalada;}

?>

Querido WordPress:

Cuando sirvas la ensalada, ¿podrías condimentarla con aceite y limón?

¡Gracias!

Hooks: Filters WordPress a medida

<?php

//Cuando mostramos el pie de página en el adminadd_filter( 'admin_footer_text', //$hook 'wpa_admin_footer_text', //$function 10, //$priority 1 //$arguments);function wpa_admin_footer_text( $text ) { //Le anteponemos el nombre del sitio $text = get_bloginfo( 'name' ) . '|' . $text; //Devolvemos el pie de página return $text;}

?>

Querido WordPress:

Cuando muestres el pie de página en el admin, ¿podrías anteponerle el nombre del sitio?

¡Gracias!

<?php

remove_action( $hook, $function, $priority);

remove_all_actions( $hook, $priority);

?>

Hooks: Actions & Filters WordPress a medida

<?php

remove_filter( $hook, $function, $priority);

remove_all_filters( $hook, $priority);

?>

También podemos “descolgar”...

<?php

do_action( $hook, $arg_1, $arg_2, $arg_n);

do_action_ref_array( $hook, $args);

?>

Hooks: Actions & Filters WordPress a medida

<?php

apply_filters( $hook, $value, $arg_1, $arg_2, $arg_n);

apply_filters_ref_array( $hook, $args);

?>

¿Cómo los encontramos?

pluginsa medida

Plugins a medida WordPress a medida

<?php/*Plugin Name: Mi pluginDescription: Ejemplo genérico.Author: Ricardo AielloAuthor URI: http://wpargentina.org/Version: 0.1Text Domain: miplugin*/

/* Código PHP a partir de aquí */

//Creamos otra función personalizadafunction mp_say_goodbye() { echo __( Goodbye!', 'miplugin' );}

?>

preguntasy comentarios