A la hora de personalizar, las opciones de configuración del admin son sólo la punta del iceberg: lo mejor está debajo del capot. Una introducción simple y práctica a los mecanismos de extensión de WordPress: child themes, hooks (actions/filters) y plugins 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?
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!