Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
shortcodes

Cómo eliminar los Shortcodes huérfanos en WordPress

Los shortcodes son códigos cortos que habitualmente utilizamos en el editor de texto para obtener una funcionalidad avanzada en el contenido de nuestras entradas, páginas, widgets, etc… En el artículo Shortcodes: ¿Qué son y cómo crearlos? los vimos con detalle y ejemplos prácticos.

Muchos temas y plugins utilizan shortcodes por ejemplo para incluir formularios de contacto, galerías de imágenes, bloques de información y/o aviso, publicidad, información relacionada, etc… pero ¿qué pasaría si el día de mañana decides cambiar de tema o dejas de utilizar un plugin que hace uso de ellos porque encuentras uno nuevo más completo o que te gusta más que el anterior?

Pues lo primero que pasa es que esos shortcodes dejarán de funcionar. Es decir, si tienes un plugin para agregar galerías de imágenes que utiliza shortcodes del tipo [gallery-plugin id=”1”], en el momento que desactives el plugin, ese shortcode no se ejecutará, y en el contenido de tu entrada o página verás literalmente como una cadena de texto: [gallery-plugin id=”1”]. Cuando esto pasa decimos que el shortcode se ha quedado huérfano.

Ante esta situación, podrías ir página por página y entrada por entrada revisando en cuál de ellas utilizas éste shortcode y eliminarlo manualmente. Si son pocas páginas puedes planteártelo, pero si tienes una cantidad ingente de posts, es cuando debes pensar en otras alternativas. Para evaluarlo, puedes crear un shortcode en functions.php que busque en todas las entradas/páginas el/los shortcodes huérfanos:

Ahora crea una página nueva y escribe el shortcode [shortcodefinder find=’orphanshortcodeID’], donde orphanshortcodeID será el nombre de tu shortcode huérfano. Te mostrará un listado con todas las entradas y páginas donde se encuentra.

Si son muchas y te decides simplemente por ocultar el shortcode, añade en el functions.php o en tu plugin de utilidades la siguiente línea:

NOTA

Ésta línea no lo borrará del contenido, simplemente no lo mostrará. Si quisieras realmente borrarlo de la base de datos tendrías que ir post por post borrándolos manualmente, o si son muchos y tienes conocimientos avanzados de MySQL, hacer una query directamente en base de datos eliminando las coincidencias con tu shortcode mediante expresiones regulares, siempre sacando una copia de seguridad de la base de datos primero por si las moscas 😉

Como casi cualquier cosa en WordPress, también puedes usar un plugin para ocultar los shortcodes huérfanos. Te recomiendo Remove Orphan Shortcodes. No necesita configuración, simplemente busca shortcodes en el contenido (the_content) de tus entradas y páginas que coincidan con los declarados en la variable global $shortcode_tags, y en caso de encontrar alguno que no exista en $shortcode_tags, lo oculta.

Puede que también te interese

Cómo agregar un campo personalizado debajo del título de una entrada
Cómo agregar un campo personalizado debajo del título de una entrada
En ocasiones puede resultar útil agregar un campo personalizado adicional justo debajo del título de una entrada o página, por cuestiones de usabilidad y experiencia…
Cómo mantener la jerarquía de las categorías en el back-end una vez seleccionadas
Cómo mantener la jerarquía de las categorías en el back-end una vez seleccionadas
En este artículo vamos a ver qué podemos hacer para mantener la jerarquía de las categorías en el back-end de WordPress una vez seleccionadas. Imaginemos…
WP-CLI Parte 4, trabajando con usuarios
WP-CLI Parte 4, trabajando con usuarios
1. Instalación y primeros pasos 2. Instalando WordPress y primeros pasos y configuraciones 3. Trabajando con posts 4. Trabajando con usuarios 5. Trabajando con la…
Reduce el HTML de tu WordPress para bajar el peso de la página
Reduce el HTML de tu WordPress para bajar el peso de la página
La parte pública de una web o expresado de otro modo, lo que el navegador pinta, no es más que un documento HTML, donde encontraremos…