- 1. Creando un tema desde cero para WordPress: Consideraciones previas
- 2. Creando un tema desde cero para WordPress: Escribiendo el tema
- 3. Creando un tema desde cero para WordPress: El loop
- 4. Creando un tema desde cero para WordPress: Acciones al activar/desactivar
Ya hemos aprendido qué es un tema de WordPress, cómo es y cómo funciona. En esta última entrada vamos a ver cómo ejecutar acciones al activarlo o desactivarlo.
Por ejemplo, al activar un tema de WordPress puede interesarnos modificar algunos valores por defecto o crear opciones de tema nuevas para nuestras configuraciones. Un ejemplo muy práctico es el siguiente: Si queremos que cualquier usuario pueda registrarse (opción que viene desactivada por defecto), al activar el tema podemos permitir el registro…pero debemos ser consecuentes y volver a desactivarlo cuando el usuario desactive nuestro tema.
Otros ejemplos para que pueda entenderse mejor: que nuestro tema modifique los roles y capacidades de usuarios, que necesitemos opciones de tema propias para personalizar el look & feel de nuestra web o añadir información de contacto, redes sociales, etc…
Para todo lo que se nos pueda ocurrir o podamos necesitar disponemos de dos hooks: after_switch_theme y switch_theme. Como lo mejor es verlo con un ejemplo, supongamos que en nuestro tema queremos que cualquiera pueda registrarse y además hemos creado unas opciones para el personalizador en nuestro functions.php donde establecemos los perfiles a las redes sociales.
Al activar el tema, a través del hook after_switch_theme activaremos el registro de usuarios y crearemos las opciones de nuestro tema con un valor por defecto. Al desactivar el tema, a través de hook switch_theme desactivaremos el registro de usuarios y borraremos las opciones de tema para no dejar rastros en la base de datos. Agregaremos a nuestro functions.php lo siguiente:
<?php
function my_theme_activation_actions() {
update_option( "users_can_register", 1 );
add_option( 'my_theme_facebook_url', '#', '', 'yes' );
add_option( 'my_theme_twitter_url', '#', '', 'yes' );
add_option( 'my_theme_googleplus_url', '#', '', 'yes' );
}
add_action( 'after_switch_theme', 'my_theme_activation_actions', 10 );
function my_theme_deactivation_actions() {
update_option( "users_can_register", 0 );
delete_option( 'my_theme_facebook_url' );
delete_option( 'my_theme_twitter_url' );
delete_option( 'my_theme_googleplus_url' );
}
add_action( 'switch_theme', 'my_theme_deactivation_actions', 10 );
Cada una de estas funciones se ejecutará una vez que el tema se activa o desactiva respectivamente, permitiéndonos establecer unos valores por defecto a configuraciones personalizadas.
Hasta aquí hemos llegado con la serie de 4 entradas sobre cómo crear temas WordPress a medida desde cero. Espero que os sea de utilidad.