SlideShare una empresa de Scribd logo
WordPress a medida
Ricardo Aiello
Analista/Desarrollador
mecanismos
de 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
child
theme
parent
theme
Child themes WordPress a medida
/*
Theme Name: Cualquier theme - Child
Description: Ejemplo genérico.
Author: Ricardo Aiello
Author URI: http://wpargentina.org/
Template: cualquiertheme
Version: 0.1
Text 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 personalizada
function 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 personalizada
function ctc_say_hello() {
echo __( 'Hello!', 'cualquiertheme-child' );
}
//Reemplazamos una función del parent theme
function 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 cenar
add_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ágina
add_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 ensalada
add_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 admin
add_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
Plugins a medida WordPress a medida
<?php
/*
Plugin Name: Mi plugin
Description: Ejemplo genérico.
Author: Ricardo Aiello
Author URI: http://wpargentina.org/
Version: 0.1
Text Domain: miplugin
*/
/* Código PHP a partir de aquí */
//Creamos otra función personalizada
function mp_say_goodbye() {
echo __( Goodbye!', 'miplugin' );
}
?>
preguntas
y comentarios
Gracias :) WordPress a medida

Más contenido relacionado

PPT
De blogger a wordpress
DOCX
Tema 4
PPTX
Pasos para crear un blog 2
PDF
Opciones avanzadas de Wordpress
PPTX
¿Cómo hacer un blog?
PDF
Crear un blog en w
PPTX
Artisteerexpouteq
PDF
Instalar joomla 2017
De blogger a wordpress
Tema 4
Pasos para crear un blog 2
Opciones avanzadas de Wordpress
¿Cómo hacer un blog?
Crear un blog en w
Artisteerexpouteq
Instalar joomla 2017

La actualidad más candente (18)

PPTX
Mi cliente es carnicero, no informático
PDF
Links De Descarga
PPTX
Insertar prezi en wordpress
PPTX
Blog de angie y thefha
PDF
Practica miguel
PPT
Capacitacion Wcreators
PDF
Mi primera App con GAE
PPT
Presentacion proyecto integrado nueva
PPT
Pinterest para tu negocio para tu negocio Trama 2013
PDF
Creacion de Amawebs - Parte 2
PDF
Creacion de Amawebs - Parte 1
PDF
WordPress Bilbao: ¿Cuáles son los mejores plugins para WooCommerce?
PPT
Como subir gadget_y_plantillas_de_otras
PPTX
Pasos para el blog de wordpress
PPTX
Como generar ingresos en la Web 2.0
PDF
SemanaWP #3 - Campos personalizados sin limites en WooCommerce
PPTX
Presentación1
ODP
Crear enlaces e_insertar_imagenes
Mi cliente es carnicero, no informático
Links De Descarga
Insertar prezi en wordpress
Blog de angie y thefha
Practica miguel
Capacitacion Wcreators
Mi primera App con GAE
Presentacion proyecto integrado nueva
Pinterest para tu negocio para tu negocio Trama 2013
Creacion de Amawebs - Parte 2
Creacion de Amawebs - Parte 1
WordPress Bilbao: ¿Cuáles son los mejores plugins para WooCommerce?
Como subir gadget_y_plantillas_de_otras
Pasos para el blog de wordpress
Como generar ingresos en la Web 2.0
SemanaWP #3 - Campos personalizados sin limites en WooCommerce
Presentación1
Crear enlaces e_insertar_imagenes
Publicidad

Destacado (16)

PPT
Eng7 myth
PPTX
vExpert 2013 Certificate by Nathan Gusti Ryan
DOCX
Trabjo final 1er periodo
PDF
ME131TermProject_HuajianHuang
DOC
Management 02.16
PPTX
Presentacion Protocolo de Investigación
DOCX
Cornell Notes
DOC
GRGiannhs_Vlahos_CV_2016
PPTX
Organizational change development ppt
PPT
La quaresma i el carnestoltes
PPTX
Doppler en obstetricia
PPTX
Management of atrial fibrillation (summary)
PPT
Web design history
PDF
Diseño y maquetación para WordPress
PDF
Psicología del programador: conociéndose a sí mismo
PDF
5 Dinge die Dr. Julian Hosp von Tony Robbins gelernt hat
Eng7 myth
vExpert 2013 Certificate by Nathan Gusti Ryan
Trabjo final 1er periodo
ME131TermProject_HuajianHuang
Management 02.16
Presentacion Protocolo de Investigación
Cornell Notes
GRGiannhs_Vlahos_CV_2016
Organizational change development ppt
La quaresma i el carnestoltes
Doppler en obstetricia
Management of atrial fibrillation (summary)
Web design history
Diseño y maquetación para WordPress
Psicología del programador: conociéndose a sí mismo
5 Dinge die Dr. Julian Hosp von Tony Robbins gelernt hat
Publicidad

Similar a WordPress a medida (20)

PDF
WordPress para programadores
PPTX
Wordpress
PDF
Código mantenible, en Wordpress.
PDF
Crear Plugin de WordPress desde Cero
PDF
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
PPTX
Plug-in imprescindibles para Wordpress
KEY
Taller de plugins
PDF
Instructivo themewordpress
PPTX
Iniciación a Wordpress #EmprendeTools
PPTX
WordPress, mucho más que un CMS para Blogs!!!
PDF
Webperf wordpress
PDF
Inicio al desarrollo en wordpress
PDF
Creación de un plugin para WordPress
PDF
Sistemas en WordPress: WPDB, Ajax, custom fields y otras magias
PPTX
cw15 conoce wordpress
PDF
Blinda y personaliza tu WordPress
PPT
Manual de administracion de Wordpress
PPT
Compu
PDF
La seguridad en WordPress de la A a la Z
PDF
Vistiendo a WordPress
WordPress para programadores
Wordpress
Código mantenible, en Wordpress.
Crear Plugin de WordPress desde Cero
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
Plug-in imprescindibles para Wordpress
Taller de plugins
Instructivo themewordpress
Iniciación a Wordpress #EmprendeTools
WordPress, mucho más que un CMS para Blogs!!!
Webperf wordpress
Inicio al desarrollo en wordpress
Creación de un plugin para WordPress
Sistemas en WordPress: WPDB, Ajax, custom fields y otras magias
cw15 conoce wordpress
Blinda y personaliza tu WordPress
Manual de administracion de Wordpress
Compu
La seguridad en WordPress de la A a la Z
Vistiendo a WordPress

Último (14)

PPTX
Qué es Google Classroom Insertar SlideShare U 6.pptx
PPTX
Plantilla-Hardware-Informático-oficce.pptx
PDF
LA INTELIGENCIA ARTIFICAL SU HISTORIA Y EL FUTURO
PDF
Frases de Fidel Castro. Compilación Norelys Morales Aguilera
PDF
CAPACITACIÓN MIPIG - MODELO INTEGRADO DE PLANEACIÓN Y GESTIÓN
PPTX
FUNCIONES DE CLASSROOM EN EL FUNCIONAMIENTO ESCOLAR
PPTX
PRESENTACION NIA 220 idhsahdjhJKSDHJKSHDJSHDJKHDJHSAJDHJKSAHDJkhjskdhasjdhasj...
PPTX
Evolución de la computadora ACTUALMENTE.pptx
PDF
[Ebook gratuito] Introducción a la IA Generativa, Instalación y Configuración...
PPT
laser seguridad a la salud humana de piel y vision en laser clase 4
PPTX
Guia de power bi de cero a avanzado detallado
PDF
Herramientaa de google google keep, maps.pdf
PPTX
presentacion_energias_renovables_renovable_.pptx
PPTX
Presentación de un estudio de empresa pp
Qué es Google Classroom Insertar SlideShare U 6.pptx
Plantilla-Hardware-Informático-oficce.pptx
LA INTELIGENCIA ARTIFICAL SU HISTORIA Y EL FUTURO
Frases de Fidel Castro. Compilación Norelys Morales Aguilera
CAPACITACIÓN MIPIG - MODELO INTEGRADO DE PLANEACIÓN Y GESTIÓN
FUNCIONES DE CLASSROOM EN EL FUNCIONAMIENTO ESCOLAR
PRESENTACION NIA 220 idhsahdjhJKSDHJKSHDJSHDJKHDJHSAJDHJKSAHDJkhjskdhasjdhasj...
Evolución de la computadora ACTUALMENTE.pptx
[Ebook gratuito] Introducción a la IA Generativa, Instalación y Configuración...
laser seguridad a la salud humana de piel y vision en laser clase 4
Guia de power bi de cero a avanzado detallado
Herramientaa de google google keep, maps.pdf
presentacion_energias_renovables_renovable_.pptx
Presentación de un estudio de empresa pp

WordPress a medida

  • 4. 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?
  • 7. Child themes WordPress a medida child theme parent theme
  • 8. Child themes WordPress a medida /* Theme Name: Cualquier theme - Child Description: Ejemplo genérico. Author: Ricardo Aiello Author URI: http://wpargentina.org/ Template: cualquiertheme Version: 0.1 Text Domain: cualquiertheme-child */ @import url("../cualquiertheme/style.css"); /* Código CSS a partir de aquí */
  • 9. Child themes WordPress a medida <?php /** * Código PHP aquí */ //Creamos una función personalizada function ctc_say_hello() { echo __( 'Hello!', 'cualquiertheme-child' ); } ?>
  • 10. Child themes WordPress a medida <?php if ( !function_exists( 'ct_do_something' ) ) { function ct_do_something() { //Hacer algo } } ?>
  • 11. Child themes WordPress a medida <?php /** * Código PHP aquí */ //Creamos una función personalizada function ctc_say_hello() { echo __( 'Hello!', 'cualquiertheme-child' ); } //Reemplazamos una función del parent theme function ct_do_something() { //Hacer algo de manera diferente } ?>
  • 12. 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 } ?>
  • 13. hooks
  • 16. Hooks WordPress a medida ● mesa_puesta ● bebida_servida ● milanesa_servida ● ensalada_servida ● cena_comenzada ● cena_terminada
  • 17. Hooks: Actions WordPress a medida <?php //Cuando una persona termina de cenar add_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!
  • 18. Hooks: Actions WordPress a medida <?php //Cuando llegamos al final de la página add_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!
  • 19. Hooks: Filters WordPress a medida <?php //Cuando servimos la ensalada add_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!
  • 20. Hooks: Filters WordPress a medida <?php //Cuando mostramos el pie de página en el admin add_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!
  • 21. <?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”...
  • 22. <?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?
  • 24. Plugins a medida WordPress a medida <?php /* Plugin Name: Mi plugin Description: Ejemplo genérico. Author: Ricardo Aiello Author URI: http://wpargentina.org/ Version: 0.1 Text Domain: miplugin */ /* Código PHP a partir de aquí */ //Creamos otra función personalizada function mp_say_goodbye() { echo __( Goodbye!', 'miplugin' ); } ?>