domingo, 30 Ago 2026

Ressources et outils exclusifs pour les experts en conception et développement web

Explorer
BiblioWeb

Biblioweb.es

Tout sur la technologie web

  • Accueil
  • Catégories
    • Développement Web et Plugins
    • IA & Automatisation web
    • Cybersécurité et Sécurité Web
    • Plugins WordPress
    • Résolution d’erreurs web
    • Hébergement & Performance Web
  • WordPress
    • Todo sobre WordPress
    • Plugins WordPress
    • Développement Web et Plugins
    • IA y Automatización web
    • WooCommerce
    • Hosting y Rendimiento Web
    • Cybersécurité et Sécurité Web
    • Solución de errores web
    • Tiendas online y Funnels
  • À propos des plugins
    • Yoast Seo
    • Woocommerce
    • Rank Math SEO
    • Moteur IA
    • WP Rocket
    • WPCode
    • WP Translate Master
    • CartBounty
    • WP SEO Pro
  • Outils
    • Générateur de mots de passe
    • Générateur de code QR
    • Compteur de mots
    • Formateur JSON
    • Compresor de Vídeo para Web
    • Generador de Firmas de Email
    • Convertisseur d’Images en WebP
    • Vérificateur d’Adresses E-mail
  • Bibliothèque de plugins
  • Español
  • English
  • 🇨🇳 中文(简体)
  • Français ✓
  • Deutsch
  • Italiano
Historique
  • WordPress
  • Plugins WordPress
  • Créer une page web
  • Woocommerce
  • Astuces WordPress
  • Voir tout
BiblioWebBiblioWeb
Ajuster la taille de la policeAa
  • Historique des Actualités
Rechercher
  • Accueil
  • Catégories
    • Développement Web et Plugins
    • IA & Automatisation web
    • Cybersécurité et Sécurité Web
    • Plugins WordPress
    • Woocommerce
    • Hébergement & Performance Web
    • Résolution de problèmes et erreurs web
    • Boutiques en ligne & Entonnoirs de Vente (Funnels)
  • WordPress
    • Todo sobre WordPress
    • Plugins WordPress
    • Développement Web et Plugins
    • IA y Automatización web
    • WooCommerce
    • Hosting y Rendimiento Web
    • Cybersécurité et Sécurité Web
    • Solución de errores web
    • Tiendas online y Funnels
  • À propos des plugins
    • Rank Math SEO
    • Moteur IA
    • WP Rocket
    • WPCode
    • WP Translate Master
    • CartBounty
    • WP SEO Pro
  • Blog
    • Español
    • English
    • 🇨🇳 中文(简体)
    • Français ✓
    • Deutsch
    • Italiano
  • Mon compte
    • Historique des Actualités
  • Outils
    • Générateur de mots de passe
    • Générateur de code QR
    • Compteur de mots
    • Formateur JSON
    • Convertisseur d’Images en WebP
    • Vérificateur d’Adresses E-mail
    • Compresor de Vídeo para Web
    • Generador de Firmas de Email
Have an existing account? Sign In
Suivez-nous
© 2026 BiblioWeb — Todos los derechos reservados.
Page d'accueil » Blog » Shortcodes de WordPress: qué son y cómo crear los tuyos
Développement Web et Plugins

Shortcodes de WordPress: qué son y cómo crear los tuyos

Adrián Alcalá
Last updated: 08/08/2026 21:10
Par Adrián Alcalá
Partager
14 min de lecture
Shortcodes WordPress : ce que c'est et comment les créer
PARTAGER

Escribes [galeria] en una entrada, publicas, y en su lugar aparece una galería de imágenes completa. Esa pequeña magia son los shortcodes de WordPress: atajos de texto entre corchetes que el sistema sustituye por contenido dinámico generado con PHP. Llevan en WordPress desde la versión 2.5 y, aunque el editor de bloques ha ocupado parte de su terreno, siguen siendo una herramienta enormemente práctica: los usan los plugins de formularios, las tablas de precios, los sistemas de reservas y miles de temas. Y lo mejor es que crear los tuyos propios es sorprendentemente sencillo. En esta guía veremos qué son los shortcodes de WordPress y cómo funcionan por dentro, cómo usar los que ya tienes instalados, y sobre todo cómo programar shortcodes propios paso a paso: simples, con atributos, con contenido anidado e incluso con salida de plantillas. Todo con código PHP completo y funcional que puedes copiar, adaptar y usar hoy.

Sommaire
Qué son los shortcodes de WordPress y cómo funcionanCómo usar shortcodes en entradas, páginas y widgetsCómo crear tu primer shortcode paso a pasoShortcodes con atributos: parámetros que cambian la salidaShortcodes con contenido y shortcodes anidadosUn ejemplo completo: listado de entradas recientes con cachéBuenas prácticas y errores que debes evitarQuestions fréquentesConclusion

Qué son los shortcodes de WordPress y cómo funcionan

Un shortcode es una etiqueta corta entre corchetes, como [contact-form-7] o [woocommerce_cart], que WordPress busca en el contenido justo antes de mostrarlo. Cuando la encuentra, ejecuta la función PHP asociada y sustituye la etiqueta por lo que esa función devuelva. El proceso ocurre en cada carga de página, sobre el filtro the_content, así que el texto guardado en la base de datos sigue siendo [galeria]: la sustitución es siempre dinámica.

Hay tres formas de escribir un shortcode:

  • Simple: [mi_shortcode] — se sustituye tal cual.
  • Con atributos: [mi_shortcode color="rojo" numero="5"] — recibe parámetros que modifican la salida.
  • Con contenido: [aviso]Texto interior[/aviso] — envuelve un contenido que la función puede procesar.

WordPress incluye varios de serie:

,

,

Vous Pourriez Aussi Aimer

Environnements de développement pour WordPress dans le cloud
Au-delà de Framer et Webflow : La comparaison de constructeurs web qui intéresse votre agence WordPress
Comment installer et configurer Yoast SEO sur WordPress
Hooks de WordPress: qué son los actions y filters

,

o . Los plugins añaden los suyos: cada formulario de Contact Form 7, por ejemplo, genera un shortcode único que pegas donde quieras mostrarlo. Si un shortcode aparece como texto plano en tu web (con corchetes incluidos), casi siempre significa que el plugin que lo interpretaba está desactivado.

Cómo usar shortcodes en entradas, páginas y widgets

En el editor de bloques (Gutenberg) existe un bloque específico llamado «Shortcode»: añádelo y pega dentro la etiqueta. En realidad también funcionan pegados en un bloque de párrafo, pero el bloque dedicado deja más claro qué es contenido y qué es código. En el editor clásico basta con escribirlos en el texto.

Fuera del contenido principal, tienes dos vías:

  1. Widgets: los widgets de texto y HTML personalizado procesan shortcodes desde WordPress 4.9 sin necesidad de código extra.
  2. Archivos de plantilla: si necesitas ejecutar un shortcode dentro de un archivo PHP del tema, usa la función do_shortcode():
<?php
// En un archivo de plantilla del tema (por ejemplo, footer.php):
echo do_shortcode( '[mi_formulario id="3"]' );

Conviene no abusar de do_shortcode() en plantillas: si controlas el código, llamar directamente a la función PHP del shortcode es más rápido. Pero como recurso puntual es perfectamente válido.

Cómo crear tu primer shortcode paso a paso

Toda la API gira alrededor de una función: add_shortcode(). Recibe el nombre de la etiqueta y la función de callback que genera la salida. La regla de oro: el callback devuelve el contenido con return, nunca lo imprime con echo. Si haces echo, el contenido aparecerá fuera de lugar (normalmente al principio de la entrada).

Empecemos por el shortcode más útil de todos los sencillos: el año actual, perfecto para avisos de copyright que nunca se quedan anticuados:

<?php
function biblioweb_shortcode_anio() {
    return date_i18n( 'Y' );
}
add_shortcode( 'anio', 'biblioweb_shortcode_anio' );
// Uso: &copy; [anio] Mi Empresa

El registro debe hacerse cuando WordPress ya está cargado, así que lo correcto es engancharlo al hook init. Si aún no dominas el sistema de actions y filters, te recomendamos reforzar antes esa base, porque los shortcodes de WordPress se apoyan directamente en él:

<?php
function biblioweb_registrar_shortcodes() {
    add_shortcode( 'anio', 'biblioweb_shortcode_anio' );
    add_shortcode( 'aviso', 'biblioweb_shortcode_aviso' );
}
add_action( 'init', 'biblioweb_registrar_shortcodes' );

¿Dónde colocar este código? Las mismas tres opciones de siempre: el functions.php de un tema hijo, un plugin propio o, la vía más cómoda para la mayoría, un gestor de fragmentos como WPCode, el gestor de snippets que analizamos en detalle, que valida el PHP antes de guardarlo y permite activar y desactivar cada shortcode individualmente.

Shortcodes con atributos: parámetros que cambian la salida

Los atributos convierten un shortcode fijo en una pieza reutilizable. El callback los recibe en su primer parámetro ($atts), y la función shortcode_atts() se encarga de mezclarlos con los valores por defecto, descartando cualquier atributo no previsto:

<?php
function biblioweb_shortcode_boton( $atts ) {
    $datos = shortcode_atts(
        array(
            'url'   => '#',
            'texto' => 'Más información',
            'color' => '#0057d9',
        ),
        $atts,
        'boton'
    );

    return sprintf(
        '<a class="bw-boton" href="%s" style="background:%s">%s</a>',
        esc_url( $datos['url'] ),
        esc_attr( $datos['color'] ),
        esc_html( $datos['texto'] )
    );
}
add_shortcode( 'boton', 'biblioweb_shortcode_boton' );
// Uso: [boton url="https://ejemplo.com" texto="Descargar guía" color="#1d9e75"]

Tres detalles importantes que este ejemplo aplica y que distinguen un shortcode profesional de uno frágil:

  • Escapado de la salida: esc_url(), esc_attr() y esc_html() evitan que un atributo malicioso inyecte HTML o JavaScript.
  • Valores por defecto: el shortcode funciona aunque el usuario no pase ningún atributo.
  • Tercer parámetro de shortcode_atts(): el nombre del shortcode activa el filtro shortcode_atts_boton, que permite a otros desarrolladores modificar los valores por defecto.

Un aviso práctico: WordPress convierte los nombres de los atributos a minúsculas, así que usa siempre mi_atributo y no miAtributo al leerlos en el callback.

Shortcodes con contenido y shortcodes anidados

Cuando el shortcode envuelve texto ([aviso]...[/aviso]), ese contenido llega al callback como segundo parámetro. El caso de uso clásico es una caja de aviso destacada:

<?php
function biblioweb_shortcode_aviso( $atts, $content = null ) {
    $datos = shortcode_atts(
        array( 'tipo' => 'info' ),
        $atts,
        'aviso'
    );
    $tipos = array( 'info', 'exito', 'alerta' );
    $tipo  = in_array( $datos['tipo'], $tipos, true ) ? $datos['tipo'] : 'info';

    return '<div class="bw-aviso bw-aviso--' . esc_attr( $tipo ) . '">'
        . do_shortcode( wp_kses_post( $content ) )
        . '</div>';
}
add_shortcode( 'aviso', 'biblioweb_shortcode_aviso' );
// Uso: [aviso tipo="alerta"]Haz una copia de seguridad [anio] antes de continuar.[/aviso]

Dos funciones hacen el trabajo fino: wp_kses_post() sanea el contenido permitiendo solo el HTML propio de una entrada, y do_shortcode() aplicado sobre $content hace que los shortcodes anidados (como el [anio] del ejemplo) también se procesen. Sin esa llamada, los corchetes interiores aparecerían tal cual.

Con la misma técnica puedes montar estructuras más ambiciosas, como columnas ([fila][columna]...[/columna][/fila]) o pestañas, aunque para maquetación pura el editor de bloques suele ser hoy mejor herramienta. El punto fuerte del shortcode sigue siendo la lógica dinámica: mostrar contenido solo a usuarios registrados, pintar datos de una API, listar entradas relacionadas.

Un ejemplo completo: listado de entradas recientes con caché

Cerremos la parte técnica con un shortcode realista que combina atributos, consulta a la base de datos y una capa de caché con transients para no penalizar el rendimiento:

<?php
function biblioweb_shortcode_recientes( $atts ) {
    $datos = shortcode_atts(
        array(
            'numero'    => 5,
            'categoria' => '',
        ),
        $atts,
        'recientes'
    );

    $clave = 'bw_recientes_' . md5( serialize( $datos ) );
    $html  = get_transient( $clave );
    if ( false !== $html ) {
        return $html;
    }

    $args = array(
        'posts_per_page'      => absint( $datos['numero'] ),
        'ignore_sticky_posts' => true,
        'no_found_rows'       => true,
    );
    if ( '' !== $datos['categoria'] ) {
        $args['category_name'] = sanitize_title( $datos['categoria'] );
    }

    $consulta = new WP_Query( $args );
    if ( ! $consulta->have_posts() ) {
        return '';
    }

    $html = '<ul class="bw-recientes">';
    while ( $consulta->have_posts() ) {
        $consulta->the_post();
        $html .= '<li><a href="' . esc_url( get_permalink() ) . '">'
            . esc_html( get_the_title() ) . '</a></li>';
    }
    $html .= '</ul>';
    wp_reset_postdata();

    set_transient( $clave, $html, HOUR_IN_SECONDS );
    return $html;
}
add_shortcode( 'recientes', 'biblioweb_shortcode_recientes' );
// Uso: [recientes numero="3" categoria="wordpress"]

Este patrón (consultar, montar HTML, cachear una hora) es aplicable a casi cualquier shortcode que haga consultas. Si un día el listado no se actualiza al momento, recuerda que el transient caduca en una hora o se puede borrar al guardar entradas con un action sobre save_post.

Buenas prácticas y errores que debes evitar

  • Return, nunca echo. El error número uno: la salida aparece al principio de la entrada en lugar de donde colocaste el shortcode.
  • Prefija los nombres. [boton] puede chocar con el de otro plugin; [bw_boton] no. El último add_shortcode() registrado gana, y el conflicto es silencioso.
  • Escapa y sanea siempre. Atributos y contenido son entrada del usuario: esc_html(), esc_url(), esc_attr() y wp_kses_post() son tu cinturón de seguridad.
  • Evita lógica pesada sin caché. El shortcode se ejecuta en cada carga de página; los transients son tus aliados.
  • No borres el plugin sin limpiar. Si desactivas el plugin que registra un shortcode, quedará el texto con corchetes visible. Antes de retirar shortcodes de un proyecto, búscalos y sustitúyelos.
  • Documenta los atributos. Dentro de seis meses no recordarás si era numero o cantidad.

La referencia completa de la API, con todos los detalles del parser y sus limitaciones, está en la documentación oficial de shortcodes de developer.wordpress.org. Y si estás montando tu caja de herramientas de plugins, nuestra selección de plugins esenciales para empezar con WordPress te ayudará a cubrir el resto de básicos.

Questions fréquentes

¿Los shortcodes están obsoletos con el editor de bloques?

No. Gutenberg ha sustituido su uso para maquetación (columnas, botones, galerías), pero los shortcodes de WordPress siguen siendo el mecanismo estándar de muchísimos plugins y la forma más rápida de insertar lógica dinámica reutilizable. De hecho, el editor incluye un bloque específico para ellos, y convertir un shortcode en bloque nativo es un proyecto considerablemente más complejo.

¿Por qué mi shortcode aparece como texto con corchetes?

Tres causas habituales: el plugin o snippet que lo registra está desactivado, el nombre está mal escrito (los nombres distinguen guiones y guiones bajos) o lo has colocado en una zona donde no se procesan shortcodes, como algunos campos de widgets antiguos o los títulos. Comprueba primero que el código de registro se está ejecutando.

¿Puedo usar un shortcode dentro de otro?

Sí, siempre que el shortcode exterior procese su contenido con do_shortcode( $content ) en su callback, como hemos visto en el ejemplo de la caja de aviso. Con una limitación del parser: dos shortcodes con el mismo nombre no pueden anidarse entre sí.

¿Shortcode o bloque personalizado: cuál me conviene crear?

Si necesitas una solución rápida, reutilizable y que también funcione en widgets, plantillas o el editor clásico, el shortcode gana por simplicidad: una función PHP y listo. Si buscas una experiencia visual en el editor, con vista previa en tiempo real y controles gráficos, el bloque nativo es superior, a cambio de exigir JavaScript y un proceso de build.

Conclusion

Los shortcodes de WordPress son la vía más directa entre una necesidad («quiero mostrar esto aquí») y una solución dinámica en PHP: una etiqueta entre corchetes, una función que devuelve HTML y el sistema hace el resto. Hemos visto cómo usarlos en entradas, widgets y plantillas, cómo crearlos desde cero con add_shortcode(), cómo hacerlos flexibles con atributos y valores por defecto, cómo procesar contenido anidado de forma segura y cómo cachear su salida para que no pasen factura al rendimiento. Con los patrones de esta guía (return en lugar de echo, escapado sistemático, prefijos en los nombres y transients para las consultas) tienes todo lo necesario para construir shortcodes sólidos y profesionales. Empieza por el más simple, el del año del copyright, y ve subiendo: en poco tiempo tendrás tu propia librería de utilidades reutilizables en cualquier proyecto.

Partager cet article
E-mail Copier le lien Imprimer
ParAdrián Alcalá
Follow:
Adrián Alcalá es desarrollador WordPress y consultor SEO, autor del plugin WP Translate y creador de BiblioWeb. Desde aquí comparte guías, tutoriales y herramientas gratuitas para quienes crean, optimizan y posicionan páginas web. Lleva años ayudando a negocios de toda España a sacar el máximo partido a WordPress, y todo lo que publica está probado en proyectos reales.
Article précédent Hooks WordPress : actions et filtres expliqués Hooks de WordPress: qué son los actions y filters
Article Suivant Custom Post Types dans WordPress : guide complet Custom Post Types dans WordPress : guide complet
como instalar wordpress - ¡Tu primera web en marcha! 🎉 Cómo instalar WordPress sin estrés y con la confianza de un experto (
¡Tu primera web en marcha! 🎉 Cómo instalar WordPress sin estrés y con la confianza de un experto (¡Te lo ponemos fácil!).
WordPress
como instalar wordpress - ¿Quieres saber cómo instalar WordPress como un PRO? 🚀 Guía definitiva para elegir el hosting perfe
¿Quieres saber cómo instalar WordPress como un PRO? 🚀 Guía definitiva para elegir el hosting perfecto (¡y que tu web vuele!)
WordPress
Meilleures ressources pour apprendre WordPress
Los mejores recursos para aprender WordPress en español
WordPress
como instalar wordpress - ¡Adiós al miedo! Cómo instalar WordPress en tu propio servidor local (¡Perfecto para experimentar s
¡Adiós al miedo! Cómo instalar WordPress en tu propio servidor local (¡Perfecto para experimentar sin riesgos y crear tu #CrearPaginaWeb!)
WordPress
- Publicité -

Vous aimerez aussi

Qu'est-ce qu'un thème enfant WordPress et comment le créer
Développement Web et Plugins

Qu'est-ce qu'un thème enfant dans WordPress et comment le créer

08/08/2026
Comment créer un plugin WordPress à partir de zéro
Développement Web et Plugins

Comment créer un plugin WordPress à partir de zéro

08/08/2026
L'API REST de WordPress : ce que c'est et comment l'utiliser
Développement Web et Plugins

L'API REST de WordPress : ce que c'est et comment l'utiliser

08/08/2026
Outils internes pour les agences web
Développement Web et Plugins

Herramientas internas para agencias web: cuándo y cómo crearlas

08/08/2026
Afficher plus
  • Plus d'actualités :
  • WordPress
  • Installer
  • Guide
  • CréerPageWeb
  • comment installer WordPress
  • Créer
  • installation
  • futur
  • Découvrez
  • Yoast
  • Extensions
  • astuces
  • installation wordpress
  • Adieu
  • Passerelles
  • page
  • Créer une page web
  • truco
  • Error
  • Construcción
BiblioWeb

Biblioweb.es

Actualité de la technologie web

Informations auxquelles vous pouvez faire confiance : guías y soluciones prácticas de tecnología web — WordPress, plugins, ciberseguridad, hosting, rendimiento y solución de errores.

Rss

Enlaces de interés

  • Sobre nosotros
  • Contacto
  • Herramientas gratuitas
  • Pluginteca

Abonnez-vous maintenant pour recevoir des mises à jour en temps réel sur les dernières nouvelles !

Légal

  • Mentions légales
  • Conditions générales
  • Politique de cookies
  • Politique de confidentialité

Dernières nouveautés

como instalar wordpress - ¡Tu primera web en marcha! 🎉 Cómo instalar WordPress sin estrés y con la confianza de un experto (

¡Tu primera web en marcha! 🎉 Cómo instalar WordPress sin estrés y con la confianza de un experto (¡Te lo ponemos fácil!).

25/08/2026
Continuer la lecture
como instalar wordpress - ¿Quieres saber cómo instalar WordPress como un PRO? 🚀 Guía definitiva para elegir el hosting perfe

¿Quieres saber cómo instalar WordPress como un PRO? 🚀 Guía definitiva para elegir el hosting perfecto (¡y que tu web vuele!)

24/08/2026
Continuer la lecture

© 2026 BiblioWeb — Todos los derechos reservados.

Gestionar consentimiento
Utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. Lo hacemos para mejorar la experiencia de navegación y para mostrar anuncios (no) personalizados. El consentimiento a estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o los ID's únicos en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.
Funcional Always active
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Préférences
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico que se utiliza exclusivamente con fines estadísticos anónimos. Sin un requerimiento, el cumplimiento voluntario por parte de tu proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarte.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en una web o en varias web con fines de marketing similares.
  • Manage options
  • Manage services
  • Manage {vendor_count} vendors
  • Read more about these purposes
Ver preferencias
  • {title}
  • {title}
  • {title}
Welcome to Foxiz
Username or Email Address
Password

Lost your password?