En WordPress, si ha usado muchos complementos, seguramente encontrará algunos que requieren que coloque un código corto en la publicación, como [shortcode_1], para que funcione. El uso de shortcode puede ser una buena manera de agregar funcionalidad a su sitio, pero cuando desactiva el complemento, el shortcode de su contenido no se elimina y aparecerá en la interfaz en su forma sin procesar.
Así es como se ve en su forma sin procesar:
Hay varias formas de eliminar el código corto no utilizado de su sitio:
1. Elimina el shortcode de la base de datos
Índice
Si sabe qué código corto en particular desea eliminar y desea eliminarlo permanentemente de su base de datos, simplemente puede hacer una consulta SQL con el siguiente comando:
ACTUALIZAR wp_post SET post_content = REPLACE ( post_content , '[shortcodename]' , '' ) ;
Reemplace “shortcodename” con el shortcode que desea eliminar.
Nota : Este no es un método infalible porque diferentes códigos cortos pueden tener diferentes atributos y valores, lo que dificulta la creación de una consulta SQL general.
2. Reemplace el código corto con un valor vacío
Si sabe qué shortcode eliminar, pero no desea eliminarlo permanentemente, puede hacer que represente un valor vacío. Pegue el siguiente código al final del functions.php
archivo (antes de la ?>
etiqueta) en su carpeta de temas.
add_shortcode ( 'shorcodename' , 'mte_return_empty_shortcode' ) ; function mte_return_empty_shortcode ( ) { retorno '' ; }
Reemplace el “shorcodename” con el shortcode que desea eliminar.
Nota : Este es un buen método solo si sabe qué código corto va a eliminar. También debe asegurarse de que el código abreviado ya no esté activo, de lo contrario, podría generar un conflicto.
3. Elimine todos los códigos cortos no utilizados del contenido (recomendado)
Si tiene un montón de códigos cortos que ya no usa y no puede recordar todo el nombre del código corto, aquí hay una forma definitiva de deshabilitar todos los códigos cortos no utilizados en su contenido.
Pegue el código al final de su functions.php
justo antes de la ?>
etiqueta.
add_filter ( 'el_contenido' , 'mte_remove_unused_shortcode' ) ; function mte_remove_unused_shortcode ( $ contenido ) { $ patrón = mte_get_unused_shortcode_regex ( ) ; $ contenido = preg_replace_callback ( '/' . $ patrón . '/ s' , 'strip_shortcode_tag' , $ contenido ) ; return $ contenido ; } function mte_get_unused_shortcode_regex ( ) { global $ shortcode_tags ; $ nombres de etiqueta = array_keys ( $ shortcode_tags ) ; $ tagregexp = join ( '|' , array_map ( 'preg_quote' , $ nombres de etiqueta ) ) ; $ regex = '\ [(\ [?)' ; $ regex . = "(?! $ tagregexp )" ; $ regex . = '\ b ([^ \] \ /] * (?: \ / (?! \]) [^ \] \ /] *) *?) (?: (\ /) \] | \] (?: ([^ \ [] * + (?: \ [(?! \ / \ 2 \]) [^ \ [] * +) * +) \ [\ / \ 2 \])?) (\]?) ' ; return $ regex ; }
Lo que hace el código anterior es recuperar primero la lista de todos los códigos cortos activos, buscar en el contenido códigos cortos que no coincidan con la lista de códigos cortos activos y eliminar los códigos cortos. Se modifica desde la función get_shortcode_regex que verifica el código corto activo.
Nota : Este método debería funcionar para todos los códigos cortos no utilizados y no elimina el código corto de forma permanente. La próxima vez que vuelva a activar el complemento, su código abreviado respectivo seguirá funcionando automáticamente. Por otro lado, este código eliminará todo el contenido que se cita entre una etiqueta “[” y “]”.