¿Qué consulta de SQL para realizar una búsqueda y reemplazo simple?

18

Cada vez que creo un nuevo sitio web, primero creo un sitio de prueba en un subdominio como "stage.domain-name.com".

Después de que todo funcione correctamente, exporto la base de datos, la abro en notepad ++ y hago una búsqueda / reemplazo para "subdominio.dominio-nombre.com" y la reemplazo con "dominio-nombre.com" ... finalmente lo importo en una nueva base de datos para el sitio en vivo.

Mi pregunta es ... ¿qué consulta SQL necesitaría ejecutar si quisiera hacer esta búsqueda / reemplazo simple en toda la base de datos usando phpmyadmin?

-CH

    
pregunta NetConstructor.com 25.01.2011 - 12:09

7 respuestas

13

La tabla donde se guarda su URL es wp_options. Debe realizar una actualización en las columnas que usan la URL para su sitio:

UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "siteurl"
UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "home"

Es posible que me falte algo de valor, pero cada vez que vuelva a realizar este proceso de búsqueda / reemplazo, podrá observar los valores y las tablas que deben actualizarse y agregarlos a este script.

WordPress Codex tiene una buena guía sobre cómo cambiar la URL de un sitio, tal vez sea aún más práctico para ti: Cambiando la URL del sitio

    
respondido por el Fernando Briano 25.01.2011 - 12:25
26

Las mejores opciones para hacer, publicaciones, publicar contenido y publicar meta:

UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com');

UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com');

UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');

También vea Buscando datos usando phpMyAdmin y MySQL | Packt Publishing. Y Search RegEx es un buen complemento de WP para poder buscar y reemplazar con Grep a través de todas las publicaciones y páginas.

Actualización 6/16/2015: El uso de la herramienta vinculada en la siguiente oración es mucho mejor, ya que una búsqueda / reemplazo simple como la anterior en un volcado de base de datos romperá los datos serializados. Vea interconnectit.com WordPress Serialized PHP Search Replace Tool. De esta manera, no rompe los datos serializados y no necesitará ejecutar RegEx en el contenido de la publicación, ya que el script de interconexión cambia las URL en todas partes. Utilizo esa herramienta todo el tiempo para migrar sitios a diferentes dominios, o simplemente para hacer un cambio global de http a https para forzar SSL sin complementos y cambiar todas las URL en el contenido para evitar errores de elementos inseguros.

    
respondido por el markratledge 25.01.2011 - 15:02
9

Este es un excelente script de inserción que uso y funciona a la perfección con los arreglos en serie que WP usa para almacenar opciones. Solo asegúrate de eliminarlo de tu servidor remoto cuando hayas terminado porque es un GRAN riesgo de seguridad.

enlace

    
respondido por el lancemonotone 02.08.2011 - 21:47
3

no tiene que hacer esto, puede usar rutas relativas.

cuando estás vinculando algo en lugar de subdominio.soemthing.com/image.jpg - usa /image.jpg por ejemplo

así no enfrentarás el problema en primer lugar.

de lo contrario, para una declaración de actualización de mysql puede utilizar

update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’);
    
respondido por el mireille raad 25.01.2011 - 12:45
3

Para esto uso WP-CLI porque lo encuentro más fácil y se encarga de los datos serializados .

wp search-replace 'http://example.dev' 'http://example.com' --skip-columns=guid

También hay una opción que escribe sus cambios en un archivo SQL en lugar de manipular la base de datos real:

wp search-replace foo bar --export=database.sql

    
respondido por el Jan Beck 27.04.2016 - 10:41
2

Para cambiar el dominio de wordpress lo que a menudo necesitamos, puede ser hacer que el sitio esté activo desde localhost: Esta es una lista completa de consultas de actualización:

UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com');
UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com');
UPDATE wp_links SET link_url = replace(link_url, 'http://olddomain.com', 'http://newdomain.com');
UPDATE wp_links SET link_image = replace(link_image, 'http://olddomain.com', 'http://newdomain.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');
UPDATE wp_usermeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');

/*UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl' OR option_name = 'widget_text' OR option_name = 'dashboard_widget_options';*/
UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com');
  • También debemos agregar otras tablas que no son predeterminadas con WP si es necesario.

ACTUALIZACIÓN: Search Replace DB versión 3.1 .0 es una herramienta de usuario para el usuario, fácil de usar, que le permite realizar acciones de búsqueda / reemplazo en toda la base de datos, que no dañan cadenas u objetos serializados PHP.

    
respondido por el Reza Mamun 24.11.2011 - 17:09
-1

En realidad, no tiene que usar una consulta SQL, solo algunos ajustes en el archivo wp_config y functions.php en su tema. Echa un vistazo a este tema en Wordpress Codex: enlace

    
respondido por el GI_MED 06.05.2015 - 13:10

Lea otras preguntas en las etiquetas