Shortcodes
✅ 1. ¿Qué es un shortcode?
Un shortcode es una función especial que puedes usar dentro del contenido de WordPress con esta sintaxis:
[mi_shortcode]
Puede aceptar atributos:
[mi_shortcode color="red" texto="Hola"]
✅ 2. Estructura básica de un plugin
Primero, crea tu plugin si aún no lo tienes:
📁 En la carpeta /wp-content/plugins/
crea un directorio llamado, por ejemplo, mi-shortcode-plugin
.
Dentro de esa carpeta crea un archivo llamado mi-shortcode-plugin.php
:
<?php
/*
Plugin Name: Mi Shortcode Plugin
Description: Añade un shortcode personalizado para mostrar contenido dinámico.
Version: 1.0
Author: Tu Nombre
*/
✅ 3. Registrar un shortcode
Ahora añade una función que registre el shortcode. Vamos con un ejemplo simple:
function mostrar_saludo_shortcode() {
return "<p>¡Hola! Este es un saludo desde mi shortcode.</p>";
}
add_shortcode('saludo', 'mostrar_saludo_shortcode');
Ahora puedes usar [saludo]
en cualquier entrada o página, y mostrará el mensaje HTML.
✅ 4. Shortcode con atributos
Agreguemos atributos personalizados:
function saludo_personalizado_shortcode($atts) {
// Atributos por defecto
$atts = shortcode_atts(array(
'nombre' => 'Visitante',
'color' => 'blue'
), $atts);
return "<p style='color: {$atts['color']}'>¡Hola, {$atts['nombre']}!</p>";
}
add_shortcode('saludo_color', 'saludo_personalizado_shortcode');
Puedes usarlo así:
[saludo_color nombre="Ana" color="green"]
✅ 5. Shortcode con contenido (envolvente)
Algunos shortcodes envuelven contenido, como [resaltar]Texto aquí[/resaltar]
. Para eso usas el parámetro $content
:
function resaltar_shortcode($atts, $content = null) {
return "<span style='background: yellow; padding: 2px 4px;'>". do_shortcode($content) ."</span>";
}
add_shortcode('resaltar', 'resaltar_shortcode');
Uso:
[resaltar]Texto destacado[/resaltar]
✅ 6. Ejemplo avanzado: Mostrar posts recientes
function ultimos_posts_shortcode($atts) {
$atts = shortcode_atts(array(
'cantidad' => 5,
), $atts);
$args = array(
'post_type' => 'post',
'posts_per_page' => intval($atts['cantidad'])
);
$query = new WP_Query($args);
$output = '<ul>';
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
$output .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
}
} else {
$output .= '<li>No hay entradas</li>';
}
wp_reset_postdata();
$output .= '</ul>';
return $output;
}
add_shortcode('ultimos_posts', 'ultimos_posts_shortcode');
Uso:
[ultimos_posts cantidad="3"]
⚠️ Consejos importantes
- Siempre valida y limpia los atributos si vas a usarlos en contextos críticos (como consultas a base de datos).
- No uses
echo
dentro de la función del shortcode, sinoreturn
. - Puedes anidar shortcodes con
do_shortcode($content)
si usas contenido envolvente.