Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
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:

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.

Puede que también te interese

Creando un tema desde cero para WordPress parte 1: Consideraciones previas
Creando un tema desde cero para WordPress parte 1: Consideraciones previas
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…
Cómo mantener la jerarquía de las categorías en el back-end una vez seleccionadas
Cómo mantener la jerarquía de las categorías en el back-end una vez seleccionadas
En este artículo vamos a ver qué podemos hacer para mantener la jerarquía de las categorías en el back-end de WordPress una vez seleccionadas. Imaginemos…
Crea tu propio motor de búsqueda para WordPress
Crea tu propio motor de búsqueda para WordPress
En este artículo vamos a ver cómo personalizar la búsqueda en WordPress, creando nuestro propio motor de búsqueda para adaptarlo a nuestras necesidades. Por defecto el…
Mejora la puntuación de Google PageSpeed Insights: Reducir el tiempo de respuesta del servidor
Mejora la puntuación de Google PageSpeed Insights: Reducir el tiempo de respuesta del servidor
1. Optimizar imágenes 2. Minificar CSS y JS 3. Especificar caché de navegador 4. Habilita la compresión 5. Reducir el tiempo de respuesta del servidor…




  • 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.

    • Imagino que lo implementarán tarde o temprano, es algo de cajón y una funcionalidad muy útil