Guía de instalación de widgets

Aprende a añadir la Lectura de hoy o las Lecturas del domingo a tu sitio web en pocos minutos.

Pruébalo

Demo en vivo

Mira exactamente cómo se ve el widget antes de instalarlo. Cambia la tradición, el idioma, el tema y el tamaño — la vista previa se actualiza al instante.

Católica
Claro

Católico · Lectura diaria · Claro

Protestante
Oscuro

Protestante · Lecturas dominicales · Oscuro

Ortodoxa
Claro

Ortodoxo · Lectura diaria · Claro

¿Quieres probar todas las opciones?

El generador interactivo te permite combinar tradición, idioma, tema, tamaño y ajustes, y luego copia el código de inserción por ti.

Abrir el generador

Inicio rápido

Instalación en cinco minutos

El camino más rápido: pega el fragmento, guarda y listo. Elige tu plataforma a continuación para una guía paso a paso.

Recomendado — inserción por script

Iframe que se ajusta automáticamente. Funciona en cualquier sitio moderno.

<script src="https://sundaybiblereadings.com/widgets/embed.js" async></script>
<div data-sbr-widget="daily-reading"
     data-locale="auto"
     data-tradition="catholic"
     data-theme="light"
     data-size="medium"></div>

Alternativa — inserción por iframe

Úsalo cuando no se permitan scripts de terceros.

<iframe
  src="https://sundaybiblereadings.com/widgets/embed/daily-reading?locale=auto&tradition=catholic&theme=light&size=medium"
  width="100%"
  height="320"
  loading="lazy"
  style="border:0;overflow:hidden;width:100%;"
  title="Sunday Bible Readings"></iframe>

Guías de instalación

Paso a paso para cada plataforma

Elige tu CMS o framework. Cada guía incluye código para copiar, errores comunes y una lista de verificación.

WordPress

Fácil
2 min

Funciona en cualquier plan de WordPress que permita HTML personalizado — Gutenberg, Elementor y el Editor Clásico están todos soportados.

Pasos

  1. Edita la entrada, página o área de widgets donde quieras que aparezca la lectura.
  2. En el editor por bloques pulsa "+" y elige "HTML personalizado". En Elementor arrastra un widget "HTML". En el Editor Clásico cambia a la pestaña "Texto".
  3. Pega el siguiente fragmento.
  4. Guarda / publica. El widget aparece de inmediato en el frontend.

Para barras laterales y pies, usa Apariencia → Widgets → HTML personalizado.

Si tu tema requiere scripts en el pie, coloca el <script> en el campo "Scripts de pie" del tema y el <div data-sbr-widget="..."> donde quieras mostrar el widget.

Código de ejemplo

<script src="https://sundaybiblereadings.com/widgets/embed.js" async></script>
<div data-sbr-widget="daily-reading"
     data-locale="auto"
     data-tradition="catholic"
     data-theme="light"
     data-size="medium"></div>

Errores comunes

  • Pegar en un bloque de párrafo normal — WordPress escapará el HTML.
  • Plugins de caché (WP Rocket, W3 Total Cache) sirviendo una página antigua — purga la caché tras publicar.
  • Plugins de seguridad eliminando <script> — permite scripts desde sundaybiblereadings.com.

Lista de verificación

  • Bloque HTML / Código usado (no párrafo).
  • Caché purgada.
  • Widget visible en el frontend (no solo en el editor).

Squarespace

Fácil
2 min

Squarespace 7.1 admite widgets mediante el bloque "Código". Los planes de pago también permiten inyectar el script en todo el sitio.

Pasos

  1. Edita la página donde quieras el widget.
  2. Pulsa "+" e inserta un bloque "Código".
  3. Asegúrate de que "Mostrar fuente" esté DESACTIVADO y el tipo sea HTML.
  4. Pega el fragmento y guarda.

Para usar el widget en todas las páginas, ve a Ajustes → Avanzado → Inyección de código → Pie y pega solo la etiqueta <script> una vez. Luego coloca el <div data-sbr-widget="..."> en páginas individuales.

Código de ejemplo

<script src="https://sundaybiblereadings.com/widgets/embed.js" async></script>
<div data-sbr-widget="daily-reading"
     data-locale="auto"
     data-tradition="catholic"
     data-theme="light"
     data-size="medium"></div>

Errores comunes

  • Usar el plan gratuito, que deshabilita los bloques de Código.
  • Dejar "Mostrar fuente" activado — imprime el HTML como texto.
  • Envolver el fragmento en un bloque Markdown.

Lista de verificación

  • Página guardada y publicada.
  • El bloque de Código contiene HTML, no texto plano.
  • La vista previa móvil aún muestra el widget.

Wix

Fácil
3 min

Usa la inserción por iframe para el resultado más consistente. El Editor de Wix aísla los scripts de terceros.

Pasos

  1. En el Editor de Wix haz clic en Añadir (+) → Insertar Código → HTML Embed.
  2. Elige "Código" y pega el fragmento de iframe.
  3. Redimensiona el marcador al tamaño aproximado deseado.
  4. Publica.

En Wix Business / VIP puedes usar el script vía Ajustes → Código personalizado → Añadir → Final del body.

Código de ejemplo

<iframe
  src="https://sundaybiblereadings.com/widgets/embed/daily-reading?locale=auto&tradition=catholic&theme=light&size=medium"
  width="100%"
  height="320"
  loading="lazy"
  style="border:0;overflow:hidden;width:100%;"
  title="Sunday Bible Readings"></iframe>

Errores comunes

  • Elegir "Dirección Web" en lugar de "Código".
  • Dejar el iframe demasiado corto — fija su altura en 320px o más.
  • Olvidar publicar (Guardar no basta).

Lista de verificación

  • Elemento HTML Embed añadido (no solo Guardado).
  • Altura del iframe ≥ 320px en escritorio.
  • Sitio publicado.

Joomla

Medio
4 min

Usa un módulo HTML personalizado o un artículo en modo HTML. Asegúrate de que el editor y los filtros de texto no eliminen los scripts.

Pasos

  1. Ve a Extensiones → Módulos → Nuevo → Personalizado.
  2. En el editor pulsa "Alternar editor" para entrar en HTML puro.
  3. Pega el fragmento, asigna el módulo a una posición y guarda.
  4. Revisa Sistema → Configuración Global → Filtros de Texto y establece el tipo "Sin Filtrado" para el grupo que publica el widget.

Código de ejemplo

<script src="https://sundaybiblereadings.com/widgets/embed.js" async></script>
<div data-sbr-widget="daily-reading"
     data-locale="auto"
     data-tradition="catholic"
     data-theme="light"
     data-size="medium"></div>

Errores comunes

  • TinyMCE eliminando <script> — desactiva el editor antes de pegar.
  • Filtro de texto bloqueando iframe / script — ajusta por grupo de usuarios.
  • Módulo asignado a una posición de plantilla incorrecta.

Lista de verificación

  • Módulo publicado y asignado a una posición visible.
  • El filtro de texto no elimina scripts para el grupo de usuarios.
  • Widget visible en las páginas configuradas.

Drupal

Medio
5 min

Usa un Bloque Personalizado con formato "Full HTML". Debes habilitar Full HTML para el rol que coloca el widget.

Pasos

  1. Ve a Estructura → Disposición de bloques → Biblioteca de bloques personalizados → Añadir bloque.
  2. Pon Formato de texto en "Full HTML".
  3. Pega el fragmento en el cuerpo y guarda.
  4. Coloca el bloque en la región que prefieras.

Código de ejemplo

<script src="https://sundaybiblereadings.com/widgets/embed.js" async></script>
<div data-sbr-widget="daily-reading"
     data-locale="auto"
     data-tradition="catholic"
     data-theme="light"
     data-size="medium"></div>

Errores comunes

  • Usar Basic HTML — elimina iframes y scripts.
  • Olvidar colocar el bloque tras crearlo.
  • Módulos CSP agresivos bloqueando sundaybiblereadings.com.

Lista de verificación

  • Formato Full HTML usado.
  • Bloque colocado en una región visible.
  • Caché reconstruida (admin/config/development/performance).

Static HTML

Fácil
1 min

Pega el fragmento en cualquier parte dentro de <body>. Funciona con HTML plano, GitHub Pages, Netlify, Cloudflare Pages, Vercel y similares.

Pasos

  1. Abre tu archivo HTML en cualquier editor.
  2. Pega el fragmento dentro de <body>.
  3. Guarda y sube.

Código de ejemplo

<!doctype html>
<html lang="en">
  <body>
    <script src="https://sundaybiblereadings.com/widgets/embed.js" async></script>
    <div data-sbr-widget="daily-reading"
         data-locale="auto"
         data-tradition="catholic"
         data-theme="light"
         data-size="medium"></div>
  </body>
</html>

Errores comunes

  • Pegar dentro de <head> — el script necesita que exista el DOM.
  • Servir sobre HTTP — las reglas de contenido mixto bloquean el widget.

Lista de verificación

  • Fragmento dentro de <body>.
  • Sitio servido por HTTPS.
  • Página recargada tras subir.

React

Fácil
3 min

Renderiza el <div> marcador en cualquier componente y carga el script una sola vez vía useEffect para evitar SSR.

Pasos

  1. Crea un componente BibleWidget (fragmento abajo).
  2. Impórtalo donde quieras en tu app.
  3. Asegúrate de añadir el script solo una vez aunque el componente se monte varias veces.

Código de ejemplo

import { useEffect } from "react";

export function BibleWidget() {
  useEffect(() => {
    const id = "sbr-widget-loader";
    if (document.getElementById(id)) return;
    const s = document.createElement("script");
    s.id = id;
    s.src = "https://sundaybiblereadings.com/widgets/embed.js";
    s.async = true;
    document.body.appendChild(s);
  }, []);

  return (
    <div
      data-sbr-widget="daily-reading"
      data-locale="auto"
      data-tradition="catholic"
      data-theme="auto"
      data-size="medium"
    />
  );
}

Errores comunes

  • Llamar a document.createElement en SSR — envuélvelo en useEffect.
  • Añadir el script varias veces — comprueba el id existente primero.
  • CSP estricta sin https://sundaybiblereadings.com en frame-src/script-src.

Lista de verificación

  • Script añadido una sola vez.
  • El componente renderiza el div marcador.
  • Sin avisos de hidratación en consola.

Next.js

Fácil
3 min

Usa next/script con strategy="afterInteractive". Funciona en App Router (marca el componente con "use client") y en Pages Router.

Pasos

  1. Crea un Client Component (App Router) o cualquier componente (Pages Router) que envuelva next/script.
  2. Renderiza el div marcador junto al Script.
  3. Importa y coloca el componente donde quieras el widget.

Código de ejemplo

// app/components/BibleWidget.tsx — App Router (Client Component)
"use client";
import Script from "next/script";

export default function BibleWidget() {
  return (
    <>
      <Script
        src="https://sundaybiblereadings.com/widgets/embed.js"
        strategy="afterInteractive"
      />
      <div
        data-sbr-widget="sunday-readings"
        data-locale="auto"
        data-tradition="catholic"
        data-theme="auto"
        data-size="medium"
      />
    </>
  );
}

Errores comunes

  • Olvidar la directiva "use client" en App Router.
  • Usar strategy="beforeInteractive" — el widget necesita el DOM.
  • Importar el archivo a nivel de página sin marcarlo como cliente.

Lista de verificación

  • Componente marcado como cliente (App Router).
  • Script renderizado solo una vez por página.
  • El build de producción sigue montando el widget.

Vue / Nuxt

Fácil
3 min

Mismo patrón que React: añade el script dentro de onMounted (o mounted() en Options API) y renderiza el template marcador.

Pasos

  1. Crea un componente de archivo único (fragmento abajo).
  2. Impórtalo donde quieras en tu app.
  3. En Nuxt, usa <ClientOnly> si prefieres omitir SSR.

Código de ejemplo

<!-- BibleWidget.vue -->
<template>
  <div
    data-sbr-widget="daily-reading"
    data-locale="auto"
    data-tradition="catholic"
    data-theme="auto"
    data-size="medium"
  />
</template>

<script setup>
import { onMounted } from "vue";
onMounted(() => {
  if (document.getElementById("sbr-widget-loader")) return;
  const s = document.createElement("script");
  s.id = "sbr-widget-loader";
  s.src = "https://sundaybiblereadings.com/widgets/embed.js";
  s.async = true;
  document.body.appendChild(s);
});
</script>

Errores comunes

  • Cargar el script en contexto SSR — usa onMounted.
  • Montar varias copias del script.

Lista de verificación

  • El id del script evita duplicados.
  • El widget se renderiza tras recarga forzada.
  • Funciona en modo universal de Nuxt.

Personalizar

Cada opción, explicada

Toda la personalización se hace mediante atributos data-* en el div marcador (o parámetros de consulta en el src del iframe).

AtributoValoresNotas
data-sbr-widget
daily-readingsunday-readings
Obligatorio. Elige qué widget mostrar.
data-locale
autoenesptfritdepl
"auto" detecta el idioma del navegador con inglés como respaldo.
data-tradition
catholicprotestantorthodox
Controla las referencias bíblicas y los enlaces.
data-theme
lightdarkauto
"auto" coincide con el esquema de color del sistema.
data-size
smallmediumlarge
Afecta la escala tipográfica y la altura inicial del iframe.
data-logo
10
Mostrar el encabezado con el icono del libro.
data-desc
10
Mostrar la breve reflexión o descripción.

Ejemplos de inserción

Inserción por script vs iframe

Ambas son gratis. Elige la que mejor se adapte a tu CMS.

Inserción por script (recomendada)

Un pequeño script cargador detecta cada data-sbr-widget de la página, inserta un iframe responsivo y lo redimensiona automáticamente sin cambios de diseño.

Recomendado para: WordPress, Squarespace (de pago), HTML estático, React, Next.js, Vue.

Inserción por iframe

Un único <iframe> con altura inicial fija. No requiere JavaScript en tu sitio.

Recomendado para: Wix, Joomla/Drupal restringidos, entornos con CSP estricta, correos (donde se eliminan los iframes — enlaza a la página canónica).

Compatibilidad

Compatibilidad con navegadores

Todos los navegadores actuales de las dos últimas versiones principales.

Chrome
Firefox
Safari
Edge
Brave

IE 11 no es compatible. Safari móvil, Chrome Android y Firefox Android sí.

Solución de problemas

Resuelve problemas comunes

Busca por síntoma. Si no encuentras algo, escríbenos y lo añadiremos.

Buenas prácticas

Dónde colocar el widget

    Coloca la Lectura de hoy en la página de inicio, cerca de la parte superior.
    Coloca las Lecturas del domingo junto a la información de culto o los horarios.
    Deja espacio generoso alrededor del widget para que no quede apretado.
    Evita pestañas ocultas y acordeones cerrados: el widget no puede medir su altura ahí.
    Usa un widget arriba del pliegue y otro debajo cuando ambos sean relevantes.
    Pruébalo en escritorio y móvil antes de anunciarlo.

Accesibilidad

  • Enlaces y botones navegables por teclado.
  • HTML semántico (article, header, footer).
  • Contraste de color probado para WCAG AA en ambos temas.
  • Funciona con lectores de pantalla — el título y los metadatos se anuncian.

Rendimiento

  • El script cargador es pequeño y asíncrono.
  • El iframe carga de forma diferida (loading="lazy").
  • Se redimensiona vía postMessage — sin cambios de diseño.
  • Responsivo por defecto; no requiere CSS adicional.

Atribución

  • Los widgets son completamente gratuitos.
  • El pie "Powered by Sunday Bible Readings" debe permanecer visible.
  • El enlace lleva a la página canónica correspondiente.
  • Eliminar u ocultar la atribución no está permitido.

Actualizaciones

Configúralo y olvídate

Los widgets siempre muestran las últimas lecturas. No necesitas redesplegar tu sitio, actualizar nada ni cambiar el fragmento. Cada día el widget muestra la lectura del día; cada semana, las lecturas del domingo más cercano.

Preguntas

Preguntas frecuentes

Ayuda

¿Necesitas ayuda?