Categorías
Crear un blog

Cómo deshacerte de los shortcodes en WordPress para siempre

Cada vez son más los plugins que se sirven de los shortcodes para permitirnos diseñar e implementar funciones en nuestros posts y páginas. Y al principio, como es lógico, nos parecen magníficos: revisamos un catálogo amplio de opciones, seleccionamos la que queremos incrustar… ¡Et voilà! Aparece de pronto ante nosotros un trozo de texto del estilo de [este="1" es="un shortcode"]. ¡Qué fácil y que maravilloso!

El problema llega con el tiempo. Por lo general, suelen suceder alguna de estas dos cosas:

  • Nos cansamos de implementar shortcodes y, al dejar de utilizarlos, nos planteamos desinstalarlos.
  • El plugin provoca incompatibilidad con algún otro plugin que consideramos más importante para el rendimiento de nuestra página o con un tema que queremos usar.

¿Y qué hacemos? Sin pensarlo mucho más, como se trata de un plugin, lo desinstalamos, eliminamos y ala.

Cuando te das cuenta del horror que ha dejado el shortcode desinstalado

Revisas posts o páginas antiguos y ahí ves la obra de arte. Antes era un texto maquetado en columnas, con trozos de textos subrayados con color, botones… ¿Y ahora? Ahora un texto descolocado plagado de trozos de código que espantan a cualquier lector.

¡Menudo desastre!

Piensas en una posible solución y lo primero que se te ocurre es que tendrás que ir artículo por artículo eliminando todo el código que no debe aparecer ahí. Pero como sé que tu tiempo es valioso y que pensar en que tienes que repasar más de 100 entradas te provoca mareos, he decidido ponerme manos a la obra con el post de hoy para echarte una mano con métodos fáciles y rápidos.

Métodos infalibles para eliminar los restos de los shortcodes

Métodos eficaces para eliminar restos de shortcodes

Obviando por supuesto la forma manual, que es tarea ardua y aburrida como la que más, vamos a por las interesantes:

Cómo ocultar los restos de shortcodes: nivel básico

Has leído bien: ocultar, no borrar. El código seguirá estando ahí, pero invisible a los ojos del lector y de Google. Tan sencillo como instalar el plugin Remove Orphan Shortcodes y activarlo. Esta es la forma más rápida y sencilla de deshacerse de tan molestos códigos.

Borrar shortcodes buscando y reemplazando: nivel intermedio

Vamos con un método que ya implica arremangarse. Lo que haremos será buscar cadenas de texto en TODO nuestro sitio y reemplazarlas por algo (en nuestro caso, nada).

Busca e instala el plugin Search RegEx. ¿Has usado alguna vez la opción de buscar y reemplazar de Word? Pues esto funciona igual. Ahora viene la parte divertida (ironía): cada plugin de shortcode utiliza un código especial. Por ejemplo, si tienes instalado Shortcodes Ultimate sabrás que no empieza igual el código para insertar un botón que un listado. Esto implica que tendremos que hacer la tarea de buscar y reemplazar varias veces, y que nos cagaremos en los desarrolladores del plugin por no habilitar una opción como dios manda para hacer esto más rápido. Sin embargo, si usas el plugin Contact Form 7 sabrás que todos los shortcodes empiezan con el mismo texto del tipo [contact-form-7 404 "Not Found"], por lo que haciendo una sola vez el proceso bastará (¡viva!).

Ejemplo: eliminando código de botones, columnas y listados de Shortcodes Ultimate

Voy a localizar, para empezar, el código común que me interesa con respecto a este plugin.
Para ello visito los posts antiguos que tengo maquetados e identifico el código que se corresponde con los botones, las columnas y los listados, ya que ha sido lo que he utilizado de este plugin. Esto es un ejemplo: si has usado más, u otros, te tocará identificarlos.

  • Botones: abre con [ su_button ] y cierra [ /su_button ]
  • Columnas: abre con [ su_column ] y cierra [ /su_column ]
  • Listado: abre con [ su_list ] y cierra [ /su_list ]
Cómo queda un post al desinstalar Shortcodes Ultimate
Este es el post que voy a utilizar para explicar el proceso

Si ya tienes instalado el plugin Search RegEx, vete al apartado Herramientas y pulsa sobre el nombre del plugin. Podrás ver una pantalla como esta:

Pantalla del plugin Search RegEx

La opción que viene por defecto seleccionada en Source es la que nos interesa: Post content. En Search Pattern tendremos que incluir el código que queremos identificar, y en Replace Pattern no pondremos nada (para que elimine ese código). A continuación pulsamos en Search para detectar los códigos.

Buscando código para borrarlo

El trozo que aparece coloreado de rojo es el que el plugin ha identificado con la cadena texto que le hemos indicado y, por tanto, será el que podamos eliminar o borrar. Como puedes ver, tendremos que repetir este proceso 2 veces: una para borrar el código de apertura ([ su_button ]) y otra para borrar el código de cierre ([ /su_button ]). Una vez estés deacuerdo con que quieres borrar el código coloreado, pulsa sobre el botón Replace & Save.

Eliminando código de Shortcode Ultimate

Pero haciendo esto, en el ejemplo, no eliminamos todos los restos de los shortcodes que usamos para implementar botones. ¿Porqué?

Si has personalizado algo del shortcode como: color, icono, alineación… El código será una cadena de texto mayor, y por tanto tendrás que localizarla toda para poder eliminarla. Si has usado siempre el mismo estilo de botón (lo lógico para no romper con el diseño del sitio), no te resultará muy pesado hacer este trabajo. Pero como tengas 3 o 4 botones con configuraciones diferentes… ¡Prepárate para invertir tiempo y paciencia! Lo bueno es que el cierre SÍ es para todos el mismo.

Códigos basura en tu WordPress

En este ejemplo, aparte de los botones “por defecto” tenía otros con colores personalizados. Una vez detectada la cadena, busco y reemplazo. Es siempre el mismo procedimiento.

Eliminar código shortcodes

Este es el resultado. Como puedes ver, los trozos de código han sido eliminados. En mi ejemplo, entre cada shortcode no había un salto de línea y es por eso por lo que al borrar los códigos el texto queda pegado. Si quieres añadir automáticamente un salto de línea en lugar del shortcode, en Replace pattern incluye este código: < br / >.

Borrar shortcodes añadiendo código: nivel avanzado

Haz siempre una copia de seguridad de tu sitio antes de meterle mano.

Opción básica

Para esta opción tendrás que acceder por un programa FTP como FileZilla a tu sitio y, o bien incluir el código en el archivo functions.php o en un plugin de funciones que tengas personalizado. La recomendación es que estas cosas las hagas en un plugin para no sobrecargar el archivo original.

Tendrás que pegar el siguiente código en tu functions.php (o en tu plugin):
add_shortcode( 'trozoquequieresborrar', '__return_false' );
Tendrás que sustituir trozoquequieresborrar por [ su_button ], por ejemplo.

Opción completa

Este código lo que hará será eliminar todos los shortcodes que no estás utilizando (es decir, cuyo plugin ha sido desinstalado). Al igual que el anterior, pégalo en functions.php o en tu plugin:

add_filter('the_content', 'mte_remove_unused_shortcode');
function mte_remove_unused_shortcode($content)
{ $pattern = mte_get_unused_shortcode_regex();
$content = preg_replace_callback( '/'. $pattern .'/s', 'strip_shortcode_tag', $content );
return $content;
}

function mte_get_unused_shortcode_regex() {
global $shortcode_tags;
$tagnames = array_keys($shortcode_tags);
$tagregexp = join( '|', array_map('preg_quote', $tagnames) );
$regex = '\\[(\\[?)';
$regex .= "(?!$tagregexp)";
$regex .= '\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)';
return $regex;
}

Este código lo que hace es desactivar temporalmente los shortcodes no utilizados, volviendo a activarse al instalar el mismo plugin de nuevo. Además, lo que hace es detectar los shortcodes identificados dentro de los corchetes []

Y hasta aquí la explicación. Creo que el mejor método (valorando dificultad/resultados) es el segundo. De todas formas, si lo que quieres es deshacerte de estos códigos y no tienes tiempo suficiente o no quieres hacerlo, contacta conmigo y lo tendrás solucionado antes de lo que te imaginas.

6 respuestas a «Cómo deshacerte de los shortcodes en WordPress para siempre»

Yo tampoco soy muy partidaria de los shortcodes Miguel, pero al cliente le encantan, qué le vamos a hacer. Y ahora que están tan de moda los maquetadores visuales como Visual Composer o Thrive Content Builder, ya ni te cuento. Creo que es importante que el cliente sepa lo que le puede pasar cuando se canse de usarlos y cómo solucionarlo, para evitar sustos y llamadas de emergencia 🙂

Saludos!

Hola Rober!
No lo salva. Thrive Content Builder ahora mismo, si lo desactivas, no te deja el post o página plagado de shortcodes. El problema es que al desactivarlo también desaparece el contenido que creaste con él…
Es importante que lo tengas en cuenta. Para saber más sobre el efecto lock-in te aconsejo que veas este post donde hablé más a fondo: https://lualouro.com/efecto-lock-in-en-plugins-temas-wordpress/

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *




Lúa Louro te informa que los datos de carácter personal que proporciones cubriendo este formulario serán tratados por Lúa Louro González como responsable de esta web. La finalidad de la recogida y tratamiento de los datos personales que te solicito es para gestionar los comentarios que realizas en este blog. Legitimación: Consentimiento del interesado. El hecho de que no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios podrá tener como consecuencia que no atender pueda tu solicitud. Como usuario e interesado te informo que los datos que me facilitas estarán ubicados en los servidores de Raiola (mi proveedor de hosting) dentro de la UE. Ver la política de privacidad de Raiola. Legitimación: Consentimiento del interesado. El hecho de que no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios podrá tener como consecuencia que no atender pueda tu solicitud. Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en hola@lualouro.com así como el derecho a presentar una reclamación ante una autoridad de control.Puedes consultar la información adicional y detallada sobre Protección de Datos en https://lualouro.com, así como consultar mi política de privacidad.