
Lesley Fowler
0
3488
733
Tener y administrar un blog de WordPress es muy divertido, especialmente cuando comienzas por primera vez. Diseñando el sitio o eligiendo un tema genial, y escribiendo esas primeras publicaciones en anticipación del gran enjambre de personas que estás seguro se dirigen hacia ti. La realidad no tarda mucho en llegar, y antes de que te des cuenta no te gusta el tema, el flujo de visitantes no es más que un goteo, y te das cuenta de que tu proveedor de alojamiento web no tiene la potencia que necesitas.
Hacer crecer un blog lleva años y mucho dolor y lucha. Estoy seguro de que Aibek testificaría de eso. Luego están las transiciones principales, cuando te das cuenta de que tienes que hacer algunos cambios importantes, y va a tomar mucho trabajo.
Hay varios cambios importantes que tuve que hacer en mi propio blog, pero uno de los más difíciles se debió al hecho de que había utilizado cierto método manual para insertar anuncios de Google en los artículos de mi blog..
Cambio de publicaciones con un solo comando SQL
El problema es que después de varios años de ejecutar el blog, tuve casi 1,000 publicaciones con ese anuncio de Google insertado manualmente. Si alguna vez quisiera hacer un cambio, eso es mil publicaciones que tendría que editar.
Quería usar ese complemento de plantilla en la publicación sobre el que escribí en 2010. Esto automatizaría la inserción de anuncios en el futuro, pero si lo usara sin eliminar todos esos anuncios existentes, terminaría con dos anuncios en los artículos antiguos.
Para eliminar el anuncio anterior, tuve que realizar un poco de magia SQL, y lo compartiré con ustedes hoy. La acción se lleva a cabo en phpMyAdmin, y deberá seleccionar la base de datos de su blog en el menú de la izquierda..
El código que usará para quitar secciones de su contenido estará en la etiqueta SQL. Lo que quiero decir con eso es el código que le mostraré, podrá usar para eliminar cualquier contenido que exista en múltiples publicaciones de blog, de 2 a 200, o más. El único requisito es que lo que desea eliminar debe tener un texto de inicio y un texto de finalización común, como un anuncio de Google tiene una etiqueta de inicio y una etiqueta de finalización comunes..
Así es como se ven mis entradas de blog más recientes, con el anuncio insertado manualmente justo después de “Más” etiqueta en cada página, alineada a la derecha.
La forma en que se presenta este código en la página se ve así:
Como pueden ver, tengo un “tipo de script” etiqueta de inicio que puedo usar al comienzo de cada anuncio, y un “script src” etiqueta que puedo usar al final.
Así es como funciona. Necesitas decirle al SQL “actualizar” comando que desea eliminar por completo ese bloque de su página. Necesitará comprender tres funciones básicas de MySQL - reemplazar, substr y localizar.
Primero, use LOCATE para decirle al comando las ubicaciones de los puntos inicial y final. En mi caso, uso las cadenas al principio y al final de la sección que quiero eliminar. La ubicación de inicio en la página del comienzo es:
LOCATE ('', post_content)
La ubicación final es más complicada. Localizar le da el inicio de la cadena, por lo que debe agregar el número de caracteres al final de la cadena para obtener la ubicación final.
LOCATE ('", post_content) + 93
A continuación, tendrá que decirle al “REEMPLAZAR” funciona exactamente qué texto desea reemplazar. Para ello, extrae la cadena real del contenido de la publicación, utilizando la función SUBSTR. Tienes que pasarle la ubicación inicial (que ahora tienes) y la longitud. La longitud que necesita calcular restando la posición inicial de la última posición (que también tiene).
Esto es lo que parece, con el código anterior insertado en la función SUBSTR:
substr (post_content, localizar ('', post_content), ((localizar ('', post_content) + 93) - (localizar ('', post_content))))
Parece loco ¿verdad? Pero si observa detenidamente, verá que hay tres secciones incrustadas: contenido de la publicación, ubicación de inicio y longitud..
Ahora que tiene el texto exacto que desea eliminar de sus publicaciones, todo lo que tiene que hacer es indicarle a la función REEMPLAZAR que lo reemplace con un espacio. Simplemente copie el código anterior en el siguiente comando:
ACTUALIZACIÓN wp_posts SET post_content = replace (post_content, string_to_replace, replace_string);
Me gusta esto:
ACTUALIZAR wp_posts SET post_content = REPLACE (post_content, substr (post_content, localizar ('', post_content), ((localizar ('', post_content) + 93) - (localizar ('', post_content)))), ");
Al ejecutar el script anterior, si toda la sintaxis está correctamente alineada, debería ver los siguientes resultados exitosos en phpAdmin.
Ahora, cuando vuelvo a cargar las publicaciones en mi navegador web, ¡listo! El anuncio ha sido mágicamente eliminado.
No me malinterpreten, no funcionó en todos los anuncios, porque tenía algunos más antiguos que tenían un formato ligeramente diferente al principio y al final. Me gusta ésta página.
Pero con un poco de ajustes, solo cambiando las etiquetas precisas para inicio / finalización, pude volver a ejecutar el SQL y borrarlos también.
Esta técnica funcionará para eliminar cualquier contenido que esté en su contenido de publicación de WordPress. Esa es la belleza de tener las publicaciones en una base de datos MySQL, simplemente puede ejecutar comandos SQL para manipular miles de publicaciones a la vez, ahorrando una gran cantidad de trabajo manual. Solo asegúrese de hacer una copia de seguridad de su base de datos antes de comenzar!
¿Tiene algún otro uso ordenado para este comando SQL? Pruébelo en su propia base de datos de WordPress y vea qué tan bien funciona para usted. Comparta sus experiencias y comentarios en la sección de comentarios a continuación..
Créditos de imagen: Shutterstock