• Saltar a la navegación principal
  • Saltar al contenido principal
Código Genesis

Código Genesis

Tutoriales de WordPress y Genesis Framework

  • Empieza aquí
  • Cuenta
    • Suscripción
    • Perfil
    • Actualizar tarjeta
    • Favoritos
    • Salir
  • Suscribirse
  • Acceder

Detectar si un tema de WordPress usa el fichero theme.json

Descubre en este tutorial cómo detectar si un tema de WordPress usa el fichero theme.json y asegurarte de ejecutar una función (o cualquier código) solo si lo tiene.

WordPress 5.8 introdujo el fichero theme.json, que es una de las piezas clave sobre las que se fundamentan los temas de bloques.

Lo bueno es que el fichero theme.json se puede usar en temas clásicos, por eso preparé un tutorial explicando todo el potencial que ofrece.

Más recientemente, en WordPress 6.1 se introdujeron varios filtros para poder acceder al fichero theme.json:

  • wp_theme_json_data_default: se «engancha» a los datos que provee WordPress
  • wp_theme_json_data_blocks: se «engancha» a los datos que proveen los bloques
  • wp_theme_json_data_user: se «engancha» a los datos que provee el usuario
  • wp_theme_json_data_theme: se «engancha» a los datos que provee el tema

Esto permite que este fichero sea totalmente extendible. Pero si estás desarrollando un plugin o similar, lo recomendable es comprobar si este fichero existe o no donde se va a ejecutar el código y usar un condicional para que solo lo haga si lo hay.

Como te puedes imaginar, este condicional es el candidato perfecto para combinarlo con los filtros que te mencionaba más arriba.

En este tutorial vas a aprender cómo hacerlo:

Código para comprobar si un tema tiene un fichero theme.json

Para detectar si el tema tiene un fichero theme.json puedes utilizar la función wp_theme_has_theme_json().

Este sería un ejemplo sencillo de cómo mostrar si lo tiene o no usando un shortcode.

Añade el siguiente snippet al fichero functions.php o a tu plugin de funcionalidades:

Para ver este código y los otros 2107 snippets de esta web,
identifícate o suscríbete aquí.

Este es un simple ejemplo en el que detectas si es el tema tiene un fichero theme.json o no y te lo muestra. Pero esta no es la parte importante.

La idea es utilizar esa información para hacer que la ejecución de un código esté condicionada por el tipo de tema del sitio en cuestión.

La función podría ser algo así:

Para ver este código y los otros 2107 snippets de esta web,
identifícate o suscríbete aquí.

Como puedes observar, primero detectas si hay el tema tiene un fichero theme.json y luego ejecutas un código u otro de forma condicional.

Para adecuar estos ejemplos a tu conveniencia solo tienes que añadir el código que quieres que se ejecute dependiendo del tipo de tema.

Como comentaba al inicio esta función puede ser muy práctica para combinar los filtros:

  • wp_theme_json_data_default
  • wp_theme_json_data_blocks
  • wp_theme_json_data_user
  • wp_theme_json_data_theme

Si quieres que prepare algún ejemplo solo tienes que decírmelo.

Conclusión

Ahora ya sabes cómo detectar si un tema de WordPress tiene un fichero theme.json (o no) y ejecutar diferentes códigos dependiendo del tipo de tema.

¿Alguna duda? Te leo en los comentarios.

Y si quieres darme una sugerencia para próximos tutoriales, déjamela en el formulario de contacto. Ventajas de ser suscriptor. 😉

Tutoriales relacionados

  • https://codigogenesis.com/actualizaciones-wordpress/
  • https://codigogenesis.com/anadir-opciones-full-site-editing-tema-clasico-wordpress/
  • https://codigogenesis.com/entendiendo-anatomia-fichero-theme-json/
  • https://codigogenesis.com/crear-plugin-funcionalidades-wordpress/

FSE JSON PHP theme.json WordPress

Nahuai Badiola

Desarrollador web especializado en WordPress y Genesis Framework. CEO de Código Genesis y cofundador de OsomPress (temas y plugins para WordPress).

Para dejar dudas o preguntas sobre este código, puedes identificarte o suscribirte.

  • Empieza aquí
  • Sobre Código Genesis
  • Preguntas frecuentes
  • Contacto
  • Feed

Aviso legal · Política de privacidad · Política de cookies · Condiciones de contratación
Copyright © 2026 · Código Genesis

close-icon

¿Has olvidado tu contraseña?