07 de abril 2015: ricardo aiello - wordpress a medida
TRANSCRIPT
WordPress a medida
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 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 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?
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' );}
?>