Plugin gratuito, de un solo archivo, sin dependencias externas, bajo licencia GPL v2+. Añade dos botones al final de tus posts y páginas: uno para imprimir o guardar como PDF, otro para descargar el contenido como archivo .md.
Índice de contenidos
El problema
Llevo años desarrollando y manteniendo sitios WordPress, tanto propios como de clientes. Cada cierto tiempo surge la misma necesidad puntual: un visitante quiere imprimir un artículo o guardarlo como PDF, pero al hacerlo desde el navegador se lleva por delante la cabecera, el sidebar, el footer, los avisos de cookies y los banners de newsletter. El resultado es un documento de 6 páginas donde el artículo ocupa 2.
Las soluciones habituales no me convencían:
- Plugins «Print Friendly» comerciales o freemium: cargan recursos externos, hacen llamadas a servicios SaaS, meten su propia marca, requieren cuenta.
- Plugins basados en DOMPDF / mPDF / wkhtmltopdf: añaden librerías pesadas, consumen memoria PHP y dan problemas en hostings compartidos como IONOS, donde tengo gran parte de mi fleet.
- Soluciones solo CSS (@media print): funcionan, pero requieren ajustar selectores específicos para cada tema (Astra, Hello Elementor, Avada, Divi…) y no resuelven el caso de exportar a otros formatos.
Quería algo más sencillo, ligero y portable. Lo construí, lo testeé en producción, y he decidido publicarlo.
La solución: AB Print Content
Es un plugin de un solo archivo PHP, sin librerías externas, sin Composer, sin JavaScript adicional. Al activarlo, añade dos botones al final del contenido en posts y páginas:
- 🖨️ Imprimir / PDF — abre una vista limpia del artículo (solo título, fecha, autor y contenido) y lanza automáticamente el diálogo de impresión del navegador. Desde ahí, el usuario elige «Guardar como PDF» como destino y obtiene un PDF nítido sin ruido.
- 📄 Markdown — descarga el contenido del artículo como archivo .md con front-matter YAML (título, fecha, autor, URL fuente, nombre del sitio). Útil para archivar, citar, llevarlo a Obsidian, Notion, GitHub o cualquier herramienta basada en Markdown.
Cómo funciona técnicamente
El plugin registra dos rewrite endpoints de WordPress:
- https://tu-sitio.com/mi-articulo/ab_print/ → vista imprimible
- https://tu-sitio.com/mi-articulo/ab_md/ → descarga del .md
Para el PDF, la estrategia es delegar al navegador. No genero el PDF en el servidor: rendero un HTML minimalista (sin tema, sin scripts, solo el contenido y estilos de impresión) y dejo que el navegador haga lo que ya sabe hacer perfectamente desde hace años, generar PDF desde HTML. Sin librerías, sin consumo de memoria PHP, sin dependencias.
Para el Markdown, escribí un conversor HTML→MD desde cero usando DOMDocument, la librería XML nativa de PHP. Cubre los elementos habituales: encabezados, párrafos, negritas, cursivas, enlaces, imágenes, listas anidadas, blockquotes, código inline y en bloque, tablas en formato GitHub, separadores y figures con caption. Iframes, scripts y elementos visuales sin equivalente en Markdown se descartan limpiamente.
El archivo final del plugin son unas 500 líneas de PHP. Lo puedes leer entero en 10 minutos.
Capturas
Instalación
- Descarga el archivo ab-print-content.php desde el repositorio en GitHub (enlace al final del artículo).
- Súbelo a tu instalación WordPress en la siguiente ruta: wp-content/plugins/ab-print-content/ab-print-content.php
- Activa el plugin desde el panel de administración de WordPress (Plugins → Plugins instalados).
- Visita cualquier post o página de tu sitio. Verás los dos botones al final del contenido.
Si al activar el plugin los enlaces dan error 404, ve a Ajustes → Enlaces permanentes y pulsa Guardar cambios para que WordPress refresque las reglas de reescritura. Es un paso habitual al instalar plugins que registran endpoints.
Configuración
Después de activar, encontrarás un nuevo menú en el sidebar del admin: AB Plugins → AB Print Content. Desde ahí puedes:
- Activar o desactivar la inserción automática de botones al final del contenido.
- Mostrar u ocultar cada botón por separado (Imprimir / Markdown).
- Elegir en qué tipos de contenido aparecen los botones (posts, páginas y cualquier Custom Post Type público).
Si desactivas la inserción automática, los endpoints /ab_print/ y /ab_md/ siguen funcionando. Útil si prefieres enlazarlos manualmente desde una plantilla, un widget o un menú.
Compatibilidad
- WordPress:5 o superior
- PHP:4 o superior
- Page builders: funciona out-of-the-box con Gutenberg, Astra y Hello Elementor. Con Elementor Pro, Avada o Divi, el filtro the_content no siempre se dispara sobre el contenido renderizado por el builder. En esos casos, desactiva la inserción automática y enlaza los endpoints manualmente desde una plantilla del builder.
- Caché: los endpoints envían cabeceras nocache. Probado sin incidencias con WP Super Cache y WP Rocket.
Licencia y descargo de responsabilidad
El plugin se publica bajo GPL v2 o posterior, la misma licencia que el propio WordPress. Esto significa que puedes:
- Usarlo en cualquier sitio, propio o de clientes, sin permiso adicional.
- Modificarlo, adaptarlo, extenderlo a tu gusto.
- Redistribuirlo, incluso comercialmente, siempre que mantengas la licencia GPL.
El plugin se publica «tal cual», sin garantía y sin compromiso de soporte ni mantenimiento. Lo uso en mis sitios y los de mis clientes, lo he testeado en distintos entornos, pero cada instalación de WordPress es diferente. Pruébalo siempre en un entorno de staging antes de desplegarlo en producción.
No me comprometo a corregir bugs, añadir funcionalidades a petición, ni garantizar compatibilidad con futuras versiones de WordPress. Si encuentras un problema o quieres ampliarlo, eres libre de hacer un fork del repositorio y adaptarlo.
Descarga
El código está disponible en GitHub:
👉 github.com/alexborras/ab-print-content
Puedes:
- Descargar el archivo directamente desde la página del repositorio (botón verde «Code» → «Download ZIP»).
- Clonarlo con Git si trabajas así.
- Echarle un vistazo al código antes de instalarlo (las 500 líneas se leen en 10 minutos).
Si te resulta útil
No pido suscripción a newsletter ni datos personales. Lo que me gustaría, si el plugin te resulta útil:
- Deja una estrella ⭐ en el repositorio de GitHub. Es la forma estándar de validar un proyecto en la comunidad de desarrolladores y me permite ver cuánta gente lo está usando.
- Comenta aquí abajo cómo lo estás usando, en qué tipo de sitio, qué te parece. Me sirve para saber qué casos de uso tiene en el mundo real.
- Si lo redistribuyes, enlaza este artículo o el repositorio como fuente original. No es obligatorio (la GPL no lo exige), pero se agradece.
Sobre el autor
Soy Alex Borrás, desarrollador WordPress con más de diez años en el sector. Mantengo una agencia que gestiona alrededor de 60 sitios en infraestructura compartida (IONOS y servidor dedicado), desarrollo plugins personalizados en PHP para necesidades concretas de clientes, y trabajo en SEO técnico, optimización y seguridad WordPress.
Este es el primero de varios plugins de mi colección «AB» que voy a ir publicando. Si quieres seguir lo que publico, suscríbete al feed RSS del blog o sígueme en GitHub.

