VenDoor Sticky Table of Contents arma un índice flotante a partir de los encabezados de tu artículo y lo mantiene junto al texto mientras el lector avanza. La sección que se está leyendo queda resaltada, las subsecciones se pliegan hasta que hacen falta, y el panel se mueve acotado dentro del artículo en vez de flotar sobre la cabecera o el pie. En móvil y tablet se convierte en una hoja inferior.
Sin URL con #. De eso se trata.
La mayoría de los plugins de índice le pone un id a cada encabezado y enlaza a él con <a href="#seccion">. Los buscadores siguen esos enlaces y empiezan a reportar tuarticulo/#algun-encabezado como un resultado aparte. Esos fragmentos compiten con el artículo en Search Console y te parten la foto de cómo rinde realmente la página.
Este plugin no hace ni lo uno ni lo otro. Los ítems son botones, tus encabezados conservan el marcado que escribiste, y el desplazamiento se hace guardando la referencia directa al encabezado. location.hash no se toca nunca, así que no se crea, ni se enlaza, ni se comparte ninguna URL de fragmento.
Qué obtienes
- Un panel flotante anclado al borde de tu contenido, no a la ventana.
- Scrollspy: la sección actual se resalta a medida que se lee.
- Los H3 se pliegan bajo su H2 en un acordeón.
- Hoja inferior en móvil y tablet.
- Marcadores al margen que apuntan a la sección en la que estás.
- Aparece solo cuando el artículo tiene suficientes encabezados para necesitarlo.
- Accesible por teclado, respeta
prefers-reduced-motiony desaparece al imprimir. - Diez idiomas y soporte para escritura de derecha a izquierda.
Sin página de ajustes
El plugin funciona tal cual se instala y todo lo que vale la pena cambiar es un filtro, así que tu configuración vive en el tema y no en la base de datos.
| Filtro | Qué cambia | Por defecto |
|---|---|---|
sticky_toc_enabled | Si los assets se cargan en esta petición | — |
sticky_toc_post_types | Qué tipos de contenido llevan índice | array( 'post' ) |
sticky_toc_content_selector | El elemento que contiene el cuerpo del artículo | .entry-content |
sticky_toc_heading_selector | Qué encabezados se listan | h2, h3 |
sticky_toc_min_headings | Encabezados necesarios para que aparezca | 3 |
sticky_toc_scroll_offset | Margen que se deja sobre el encabezado, en píxeles | 90 |
sticky_toc_mobile_breakpoint | Ancho bajo el cual pasa a hoja inferior | 1024 |
sticky_toc_top_selectors | Límite superior por el que puede moverse el panel | — |
sticky_toc_bottom_selectors | Límite inferior por el que puede moverse el panel | — |
Por ejemplo, para apuntarlo a un tema que no usa .entry-content:
add_filter( 'sticky_toc_content_selector', function () {
return '.cuerpo-de-mi-articulo';
} );
Idiomas
El idioma de origen es el inglés. Se empaquetan japonés, español, alemán, francés, portugués de Brasil, ruso, italiano, neerlandés, polaco y turco, elegidos por cuota de instalaciones de WordPress y no por número de hablantes, porque este plugin vive dentro de WordPress. Los idiomas de derecha a izquierda están contemplados: el panel, el riel y los espaciados se reflejan.
Requisitos
- WordPress 6.0 o superior
- PHP 7.4 o superior
- Publicado bajo licencia GPL, versión 2 o posterior
Disponibilidad
La versión 2.0.0 está terminada y va camino al directorio de plugins de WordPress. Esta página enlazará a la ficha en cuanto se publique allí. Mientras tanto, escríbenos si quieres una copia.
