Esta web utiliza cookies para proporcionarte la mejor experiencia de navegación posible. Estas cookies son guardadas en tu navegador y cumplen funciones como reconocerte cuando regresas a esta web y ayudarnos a saber qué secciones de la web encuentras más interesantes y útiles.
Script para cambiar el nombre de dominio de un WordPress y sus dependencias
Importante: Esta información es para uso lúdico personal. En ningún caso se pretende dar conocimientos, consejos, formaciones, herramientas, ni soluciones técnicas de ámbito comercial ni profesional. Simplemente es información que se ha redactado en finalidad de recordatorio de ciertos proyectos realizados. Si usted no está seguro de la fiabilidad de la información, no cumple con sus expectativas o no es de su agrado, le ruego que abandone este sitio web. Para ver todas las exclusiones garantía y de responsabilidad acceda a la sección Aviso Legal.
Cuando se migra un WordPress de un dominio a un dominio nueva, en la base de datos quedan muchos registros que contienen el dominio viejo. Para una migración correcta, se debe cambiar esos valores. El script que hay a continuación, cambia los registros de configuración y los que hay en los posts.
Muy importante hacer una copia completa de los archivos y la base de datos del WordPress antes de ejecutar el script. Dependiendo de los plugins que tengáis instalado, este script puede no funcionar correctamente.
Se requieren unos cuantos parámetros de configuración, leyendo el script se entienden perfectamente.
<?php define ('MY_HOST', 'XXX.XXX.XXX.XXX'); define ('MY_USER', 'root'); define ('MY_PASS', 'XXXXX'); define ('MY_BDD', 'database'); define ('MY_CHARSET', 'utf8'); define ('MY_TYPE', 'mysql'); $mysqli = new PDO(MY_TYPE.':host='.MY_HOST.';dbname='.MY_BDD.';charset='.MY_CHARSET, MY_USER, MY_PASS); /* FIELD 1 */ $data = array(); $origin = 'http://www.domainold.com'; $finish = 'http://www.newdomain.com'; //prepare connection $sql = 'SELECT * FROM wp_posts WHERE post_content LIKE "%'.$origin.'%"'; $stmt = $mysqli->prepare($sql); //execute it $stmt->execute(); //extract result while ($register = $stmt->fetch()){ $register['post_content'] = str_replace($origin, $finish, $register['post_content']); array_push($data,$register); } foreach ($data as $value){ $sql = 'UPDATE ef_posts SET post_content = ? WHERE ID = ?'; $stmt = $mysqli->prepare($sql); $stmt->bindValue(1, $value['post_content'], PDO::PARAM_STR); $stmt->bindValue(2, $value['ID'], PDO::PARAM_INT); //execute it $stmt->execute(); } /* FIELD 2 */ $data = array(); //prepare connection $sql = 'SELECT * FROM wp_posts WHERE guid LIKE "%'.$origin.'%"'; $stmt = $mysqli->prepare($sql); //execute it $stmt->execute(); //extract result while ($register = $stmt->fetch()){ $register['guid'] = str_replace($origin, $finish, $register['guid']); array_push($data,$register); } foreach ($data as $value){ $sql = 'UPDATE ef_posts SET guid = ? WHERE ID = ?'; $stmt = $mysqli->prepare($sql); $stmt->bindValue(1, $value['guid'], PDO::PARAM_STR); $stmt->bindValue(2, $value['ID'], PDO::PARAM_INT); //execute it $stmt->execute(); } /* FIELD 3 */ $data = array(); //prepare connection $sql = 'SELECT * FROM wp_options WHERE option_value LIKE "%'.$origin.'%"'; $stmt = $mysqli->prepare($sql); //execute it $stmt->execute(); //extract result while ($register = $stmt->fetch()){ $register['option_value'] = str_replace($origin, $finish, $register['option_value']); array_push($data,$register); } foreach ($data as $value){ $sql = 'UPDATE wp_options SET option_value = ? WHERE option_id = ?'; $stmt = $mysqli->prepare($sql); $stmt->bindValue(1, $value['option_value'], PDO::PARAM_STR); $stmt->bindValue(2, $value['option_id'], PDO::PARAM_INT); //execute it $stmt->execute(); } echo 'end'; ?>