
Los shortcodes son uno de los pilares de WordPress. Los shortcodes son el puente entre los desarrolladores y los creadores de sitios, lo que permite a las personas colocar fragmentos elaborados de contenido en casi cualquier lugar que deseen. A los creadores de plugins les encantan los shortcodes, ya que esto permite una mayor flexibilidad en la forma y el lugar en que sus usuarios muestran su contenido.
Si no sabes qué son los shortcodes ni qué aspecto tienen, son esos arcaicos textos similares a código encerrados entre corchetes. Tienen un aspecto similar a este:
Este en concreto se llama el shortcode embed y viene integrado por defecto en WordPress. Este en particular incrusta el vídeo de la URL en tu contenido. Simplemente copia y pega el shortcode anterior en tu sitio si quieres probarlo.
Entre bastidores, lo que ocurre es que cuando WordPress encuentra un shortcode en tu contenido, este se procesa y se convierte en otra cosa. En nuestro caso anterior, cada vez que un
shortcode es detectado, WordPress toma la URL del shortcode y la comprueba con una serie de proveedores de contenido que tiene. Cuando encuentra uno, obtiene el código de incrustación de iframe adecuado y muestra eso en su lugar.
¿Cuál es el problema entonces? Suena bastante fácil: simplemente introduces un texto corto con corchetes y listo.
Aquí entra en juego la API de Shortcodes…
Shortcodes a raudales
La API de Shortcodes abre la creación de shortcodes a los desarrolladores. Gracias a esto, los desarrolladores pueden añadir sus propios shortcodes dentro de sus plugins.
Esto es genial: ahora, con solo un fragmento corto similar a código (de ahí el nombre «shortcode»), tanto los principiantes como los usuarios avanzados pueden colocar prácticamente cualquier tipo de contenido que deseen en cualquier lugar.
Por defecto, WordPress solo cuenta con un puñado de shortcodes. Es fácil escribirlos de memoria porque son muy pocos. Pero si instalas unos cuantos plugins, el número de shortcodes se dispara rápidamente a una docena o más, y en algunos casos a más de un centenar. Cada shortcode tiene su propio conjunto de atributos e instrucciones sobre cómo utilizarlos. Lo más probable es que cada plugin tenga algún tipo de documentación sobre cómo funcionan todos sus shortcodes y enumere todos los parámetros disponibles en cada uno. Pero estarías loco si intentaras memorizar todos los shortcodes y sus atributos.
El problema es que no existe un área centralizada donde puedas consultar todos los shortcodes disponibles en tu sitio y cómo utilizarlos.
Algunos intentan resolver el problema
Algunos plugins intentan resolver este problema presentando todos sus propios shortcodes en un menú desplegable de fácil acceso. Al hacer clic en uno, se inserta el shortcode, junto con todos sus atributos posibles. Ya no hace falta memorizarlo, lo cual es algo bueno.

Algunos van más allá y añaden un formulario emergente de ajustes que tiene casillas de verificación y selectores de color para rellenar los atributos del shortcode.

Esta solución funciona en cierta medida. Sin embargo, cada plugin solo enumera sus propios shortcodes. Por lo tanto, si cada plugin crea su propia forma de selector de shortcodes, inevitablemente te encontrarás con ocasiones en las que tendrás múltiples selectores de shortcodes en tu pantalla (esto ya me ha ocurrido antes).

En otras palabras, cada plugin va a lo suyo e implementa su propia solución para sus propios shortcodes. Algunos plugins añaden un botón nuevo junto al botón «Añadir medios», o uno nuevo dentro de TinyMCE.
Así que ahora podrías estar pensando: «¿Por qué no recopilar también los shortcodes de otros plugins e incluirlos también en tu desplegable / selector de shortcodes?». Bueno, eso es exactamente lo que pensé yo. Pero esto es más fácil decirlo que hacerlo. Enseguida explicaré por qué, pero primero veamos cómo sería una solución ideal.
La solución ideal
El plan perfecto sería crear un plugin que recopile todos los shortcodes disponibles en tu sitio, te presente la lista y también te ayude a rellenar todos los atributos. Y cada vez que instales un nuevo plugin, también se te presentarán todos esos shortcodes recién incorporados.
Imagina un lugar centralizado donde estuvieran ubicados todos tus shortcodes para un fácil acceso. Cada shortcode describiría lo que hace y a qué plugin pertenece. Luego, para cada atributo disponible, imagina que cada uno de ellos tuviera una etiqueta, una forma adecuada de seleccionar un valor para él y una descripción. Se te mostrarían menús desplegables, selectores de color, botones de opción, interruptores y demás.
Algo así nos facilitaría la vida como creadores de sitios web y de contenidos. Se acabaría tener que consultar diferentes documentaciones o distintas partes de tu administración solo para copiar un shortcode generado para un carrusel que quieras utilizar.
La salvedad
Desafortunadamente, es bastante difícil hacer algo así en este momento. No hay una forma infalible de conocer todos los detalles de un shortcode. Puedes obtener una lista de todos los shortcodes, pero solo sus etiquetas/nombres reales; no puedes obtener ningún detalle adicional sobre ellos, como una lista de atributos, qué hacen y sus tipos (como una cadena, un color o un número). Tampoco puedes obtener nada parecido a una descripción de cada atributo.
Nota para los desarrolladores: sí, hay un tercer argumento recién añadido para la función shortcode_atts, pero no es un argumento obligatorio. Así que, a menos que todos los desarrolladores de plugins del mundo lo implementen, seguiremos sin tener una forma segura de determinar todos los atributos de un shortcode.
La API de Shortcodes no proporciona ninguna función para añadir descripciones de shortcodes, conversión de tipos de atributos o descripciones de atributos. Y a menos que el propio WordPress añada un área central para acceder a los shortcodes, dudo que se cree esta funcionalidad.
Conclusión
En este momento, la tarea de organizar los shortcodes queda en manos de cada desarrollador. A menos que se desarrolle un método centralizado dentro de WordPress, espera seguir viendo múltiples botones de «Añadir shortcode» en tu panel de administración. El hecho de si algo así debería añadirse o no al núcleo de WordPress es otra gran discusión en sí misma.
Una alternativa
Existen plugins de maquetación visual que abordan esto de manera diferente. En lugar de detectar los shortcodes de forma programática, cuentan con mapeadores de shortcodes donde los usuarios pueden introducir manualmente cada detalle de un shortcode. Una vez hecho esto, pasa a estar disponible dentro del maquetador visual. Aunque esto funciona, solo están disponibles en tu propio sitio.
Aquí en Page Builder Sandwich estamos creando algo que, con suerte, pueda resolver este dilema de los shortcodes. Suscríbete a nuestro boletín a continuación para recibir avisos sobre nuestros progresos.