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

Seguridad WordPress: permisos de archivos y carpetas
La regla general nos dice que los permisos deben ser 755 para las carpetas y 644 para los archivos. Además recomendable poner el wp-config.php y…
Creando un plugin para WordPress parte 1: Planificación y planteamiento
1. Creando un plugin para WordPress: Planificación y planteamiento 2. Creando un plugin para WordPress: Estilo del Código 3. Creando un plugin para WordPress: Escribiendo…
Seguridad WordPress: cambiar el usuario y contraseña periódicamente
Una de los axiomas en seguridad es tener un usuario y contraseña seguros. No obstante, se recomienda cambiar la contraseña periódicamente o cada cierto tiempo…
Sanitizando: cómo validar y escapar datos en WordPress
En éste artículo vamos a aprender a hacer un tratamiento de datos correcto en WordPress. Éste punto es imprescindible para cualquier desarrollo a medida que…