Cómo crear tus propios temas para WordPress

Creando un tema desde cero para WordPress parte 4: 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.

¿Te ha resultado útil esta información? 🍺

Si este post te ha resuelto un problema, invítame a un café o a una cerveza. Con este pequeño gesto me animas a seguir escribiendo.

Comentarios

2 comentarios en Creando un tema desde cero para WordPress parte 4: Acciones al activar/desactivar

  1. Buenos días Pablo!! Interesante serie de tutoriales.

    En mi opinión la eliminación de opciones debería realizarse al eliminar el theme, no al desactivarlo. Cambiar de un theme a otro es muy habitual; tener que configurar el theme de nuevo si vuelves a uno anterior es un engorro. Creo que la configuración debería permanecer al desactivar el theme y eliminarse solo al desinstalar. Lo mismo para plugins.

    En plugins es fácil ya que soportan hooks para la desactivación y hooks para la desinstalación, lamentablemente en themes no, aunque hay un ticket solicitando su implementación desde hace más de 6 años. De momento parece que no queda otra que eliminar las opciones al desactivar si no queremos que nuestro theme deje residuos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *:

  • El fin del tratamiento es únicamente la moderación de comentarios para evitar spam
  • La legitimación es tu consentimiento al comentar
  • No se comunicará ningún dato a terceros salvo por obligación legal
  • Tienes derecho al acceso, rectificación y eliminación de los comentarios