Como ya hablamos en el artículo “¿Qué son los shortcodes y cómo personalizar tus artículos con ellos?“, una de sus propiedades era que permitían el anidamiento. Esto es, poner un shortcode dentro de otro.
Ej: [codigo][subraya color=”verde”]En un lugar de [texto_negrita]la Mancha[/texto_negrita] de cuyo nombre…[/subraya][/codigo]
Los shortcodes desarrollados por WordPress, temas de terceros o algunos plugins, ya permiten este comportamiento de base. Pero [subraya_verde]si somos nosotros quienes estamos creando los nuestros, debemos realizar una pequeña modificación. En caso contrario, los shortcodes anidados no se ejecutarán[/subraya_verde].
Recordemos rápidamente que, para crear un shortcode propio, debemos ir al archivo functions.php de nuestro tema, y añadir algo como lo siguiente:
/*Shortcode para el estilo de subrayado en rosa */
function shortcode_subrayarosa( $atts, $content = null ) {
return '<span class="subraya_rosa">' . $content . '</span>';
}
add_shortcode( 'subraya_rosa', 'shortcode_subrayarosa' );
Donde [codigo][*subraya_rosa][/codigo] será el shortcode.
Ahora bien, si queremos poder poner otros shortcodes dentro de éste, habrá que llamar a la función de WordPress [codigo]do_shortcode()[/codigo], quedando algo como:
/*Shortcode para el estilo de subrayado en rosa */
function shortcode_subrayarosa( $atts, $content = null ) {
return '<span class="subraya_rosa">' . do_shortcode($content) . '</span>';
}
add_shortcode( 'subraya_rosa', 'shortcode_subrayarosa' );

¿Te ha parecido útil la entrada? ¡Compártela para ayudarnos a nosotros y a los demás!












Escribir comentario