¿Cómo crear tu propio shortcode en WordPress?

¿Cómo crear tu propio shortcode en WordPress?

Si manejáis WordPress sabréis que existen o al menos os suenan los shortcode (códigos cortos en español). ¿Qué hacen? Cuando estamos redactando una entrada, podemos hacer una llamada a uno de ellos para conseguir una funcionalidad extra. Por ejemplo, el típico caso de la galería de imágenes: [ gallery ] (pongo espacios entre ellos para que no salte la galería.

WordPress codex

Algunos plugins y temas nos proporcionan más códigos cortos de este tipo. Sin embargo, si manejáis la API de WordPress, a lo mejor vosotros mismos queréis crear vuestros propios shortcode. ¿Cómo?

Uniendo un shortcode a una función. Si no tenemos atributos es directo:

//[mishortcode]
function mishortcode_func( $atts ){
 return "Este es mi shortcode";
}
add_shortcode( 'mishortcode', 'mishortcode_func' );

En caso de que tengamos atributos, habrá que descomponer el array de atributos que recibe la función.

// [mishortcode miatributo0="mivalor0" miatributo1="mivalor1"]
function mishortocde_func( $atts ) {
	extract( shortcode_atts( array(
		'miatributo0' => 'mivalor_por_defecto_0',
		'miatributo1' => 'mivalor_por_defecto_1',
	), $atts ) );

	return "He recibido = {$miatributo0} y {miatributo1}";
}
add_shortcode( 'mishortcode', 'mishortocde_func' );

En este caso, soportará hasta dos atributos. Si no se le pasa ningún atributo, cogerá los dos por defecto y en caso de que se le pase uno o los dos, estos serán sus valores y el que no reciba valor, recibirá el valor por defecto que le hemos asignado. Igual que en PHP (en esta entrega del curso de PHP se explica cómo se puede simular la sobrecarga usando atributos por defecto).