¿Cómo poner un shortcode dentro de otro?
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: [subraya color=”verde”]En un lugar de [texto_negrita]la Mancha[/texto_negrita] de cuyo nombre…[/subraya]
Los shortcodes desarrollados por WordPress, temas de terceros o algunos plugins, ya permiten este comportamiento de base. Pero 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.
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:
1 2 3 4 5 | /*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 [*subraya_rosa] será el shortcode.
Ahora bien, si queremos poder poner otros shortcodes dentro de éste, habrá que llamar a la función de WordPress do_shortcode(), quedando algo como:
1 2 3 4 5 | /*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