Importar a Wordpress

El objetivo es intentar migrar todo el contenido (posts, comentarios, imágenes…) manteniendo así los suscriptores del feed, lectores, visitas… sin que los usuarios aprecien el cambio, en la medida de lo posible.

Ref:
http://techtastico.com/post/como-migrar-un-blog-de-blogger-a-wordpress/
http://bloggertowp.org/video-blogger-to-wordpress-migration-complete-user-guide/

Requerimientos:

- No haber migrado a la versión Blogger Beta, ya que el importador de WordPress no funciona correctamente todavía con esa versión.

- Una instalación de WordPress, ya sea en local o remoto.

Inconvenientes:

Si no se está utilizando FeedBurner como gestor de los feeds no quedará más remedio que invitar a los suscriptores a que se vuelvan a suscribir al nuevo feed.

Pasos a seguir:

1.- Migración de Blogger a WordPress: Importación

Cuestiones a tener en cuenta en la instalación de WordPress

El tipo de caracteres y colaciones de la base de datos de MySQL donde se instalarán las tablas que almacenarán nuestra información debe ser UTF-8, de no ser así la importación no se realizará correctamente y nos mostrará caracteres extraños en la página.

A la hora de crear la base de datos le definiremos el juego de caracteres a utilizar, UTF8_SPANISH_CI.

Hay varias formas de crear una base de datos en MySQL y por consiguiente sendas formas de indicarle el juego de caracteres a utilizar:

- Mediante consola de MySQL:

CREATE DATABASE `wordpress` DEFAULT CHARACTER SET utf8 COLLATE utf8_spanish_ci;

`wordpress` es el nombre de nuestra bases de datos.

- Utilizando PhpMyAdmin

1.- En la sección "Crear nueva base de datos" de la página inicial de PhpMyAdmin escribiremos el nombre deseado para la base de datos. En nuestro caso: wordpress.

2.- En el desplegable de collation que aparece al lado, seleccionaremos utf8_spanish_ci.

3.- Pulsamos crear.

- Con PhpMyAdmin a través de un panel de control:

1.- Normalmente la creación de la base de datos no nos dejan hacerla desde PhpMyAdmin y se debe realizar desde el propio panel de control y posteriormente si que dejan acceso a través de PhpMyAdmin a las tablas.

2.- Con este método, la base de datos se habrá generado con el juego de caracteres por defecto de la instalación de MySQL, que suele ser: LATIN1_SWEDISH_CI, o ISO 8859-1 West European.

3.- En la pestaña de operaciones de PhpMyAdmin en la parte inferior de collation, seleccionaremos ut8_spanish_ci y presionaremos continuar.

Con esto ya podemos continuar con la instalación de Wordpress.

Una vez instalado, una de las opciones del menú principal es "Importar", y una de las opciones desde la que nos permite importar es "Blogger and Blogspot (Import posts and comments from your Blogger account)". Pero no le des todavía al enlace de importar, lee el siguiente punto.

Modificaciones al módulo importador de Blogger que viene con WordPress

Tenemos que modificar el fichero blogger.php que se encuentra en el directorio wp-admin/import/ de tu instalación de WordPress.

Con estas modificaciones conseguiremos importar los posts manteniendo sus URI y con un comentario en HTML que nos proporciona el ID único de los posts en blogger.com. Esto nos permitirá mantener los permalinks y hacer correctamente las redirecciones de nuestro blog en blogspot.com a nuestro nuevo dominio y mantendrá las mismas características de las URI de Blogger:

  • Blogger corta las URI mucho antes que WordPress (Menos de 40 caracteres de longitud)
  • Blogger excluye los artículos en inglés (a, an, the)
  • Blogger elimina caracteres con acentos de las URI en vez de convertirlos a su equivalente ASCII más cercano como hace WordPress.

El ID único lo integramos también en la importación para posteriormente poder volcar los comentarios de Haloscan. Si tienes los comentarios gestionados por Blogger ese paso no te hace falta pero tampoco viene mal mantener oculto el ID que tenía el post en Blogger.

Las modificaciones a realizar son las que se enumeran a continuación y para lo que necesitarás un editor de ficheros de texto (preferiblemente que indique los números de línea). Asegurarse de que esas opciones no vienen ya modificadas, ya que este artículo se publicó hace un par de años y puede que ya lo hayan tenido en cuenta…:

1.- Sustituir la línea 246:

$template = '<MainPage><br /><br /><br /><p>'.__('Are you looking for %title%? It is temporarily out of service. Please try again in a few minutes. Meanwhile, discover <a href="http://wordpress.org/">a better blogging tool</a>.').'</p><BloggerArchives><a class="archive" href="<$BlogArchiveURL$>"><$BlogArchiveName$></a><br /></BloggerArchives></MainPage><ArchivePage><Blogger><wordpresspost><$BlogItemDateTime$>|W|P|<$BlogItemAuthorNickname$>|W|P|<$BlogItemBody$>|W|P|<$BlogItemNumber$>|W|P|<$BlogItemTitle$>|W|P|<$BlogItemAuthorEmail$><BlogItemCommentsEnabled><BlogItemComments><wordpresscomment><$BlogCommentDateTime$>|W|P|<$BlogCommentAuthor$>|W|P|<$BlogCommentBody$></BlogItemComments></BlogItemCommentsEnabled></Blogger></ArchivePage>';

por:

$template = '<MainPage><br /><br /><br /><p>'.__('Are you looking for %title%? It is temporarily out of service. Please try again in a few minutes. Meanwhile, discover <a href="http://wordpress.org/">a better blogging tool</a>.').'</p><BloggerArchives><a class="archive" href="<$BlogArchiveURL$>"><$BlogArchiveName$></a><br /></BloggerArchives></MainPage><ArchivePage><Blogger><wordpresspost><$BlogItemDateTime$>|W|P|<$BlogItemAuthorNickname$>|W|P|<$BlogItemBody$>|W|P|<$BlogItemNumber$>|W|P|<$BlogItemTitle$>|W|P|<$BlogItemAuthorEmail$>|W|P|<$BlogItemPermalinkUrl$><BlogItemCommentsEnabled><BlogItemComments><wordpresscomment><$BlogCommentDateTime$>|W|P|<$BlogCommentAuthor$>|W|P|<$BlogCommentBody$></BlogItemComments></BlogItemCommentsEnabled></Blogger></ArchivePage>';

2.- Sustituir la línea 404:

$post_content = $postinfo[2];

por:

$post_content = "<!--" . $postinfo[3] . "-->" . $postinfo[2];

3.- Busca la línea 411:

$post_author_email = $postinfo[5] ? $postinfo[5] : 'user@wordpress.org';

e inserta estas dos líneas justo detrás de ella:

preg_match("/([^\/]+)\.html$/", $postinfo[6], $matches);
$post_name = $matches[1];

4.- Para terminar, reemplazamos lo que debería ser ahora la línea 459:

$post_array[$i]['post'] = compact('post_author', 'post_content', 'post_title', 'post_category', 'post_author', 'post_date', 'post_status');

por:

$post_array[$i]['post'] = compact('post_author', 'post_content', 'post_title', 'post_category', 'post_author', 'post_date', 'post_status', 'post_name');

Y una vez finalizados estos pasos ya podemos darle al enlace del menú Importar / Blogger and Blogspot, introducir nuestro login y password de blogger y esperar a que termine correctamente el proceso.


NOTA: Actualizado el 10/04/11

Al realizar lo correspondiente al módulo Import de Blogger, he visto que ha cambiado lo que hay que hacer:

1.- Crear este archivo "wp-content/themes/blogger.php":

<?php
 /*
  Template Name: blogger
 */

 global $wpdb;
 $old_url = $_GET['q'];

 if ($old_url != "") {
   $permalink = explode("blogspot.com", $old_url);

   $q = "SELECT guid FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ". 
        "ON ($wpdb->posts.ID = $wpdb->postmeta.post_id) WHERE ".
        "$wpdb->postmeta.meta_key='blogger_permalink' AND ".
        "$wpdb->postmeta.meta_value='$permalink[1]'";

  $new_url = $wpdb->get_var($q)? $wpdb->get_var($q) : "/";

  header ("HTTP/1.1 301 Moved Permanently");
  header("Location: $new_url");
 }
?>

2.- Seleccionar Tools, Import, Blogger y dar permisos a wordpress para acceder a tu cuenta de blogguer.

En este punto he tenido problemas que aquí solucionan:

http://es.forums.wordpress.com/topic/importar-entradas-de-blogger-a-wordpress

Si el xml ocupa mucho no vamos a poder subirlo a wordpress para que lo transforme en su formato xml, por eso esta es otra alternativa:

http://www.tecnologiadiaria.com/2008/02/importar-posts-de-blogger-a-wordpress-migracion.html


No hemos terminado el proceso de migración pero ya debemos tener todos los post de Blogger en WordPress y los comentarios si los gestionaba Blogger.

2.- Arreglos

Importación de las imágenes de Blogger a WordPress

Las llamadas a las imágenes siguen estando enlazadas a Blogger. Normalmente la URL de la imagen coincide con una URL de la forma: http://photos1.blogger.com/xxx/image.jpg.

Esto puede llevar a que las imágenes no se carguen correctamente cuando el usuario está visualizando el nuevo blog en su nuevo dominio, que es diferente al de Blogger (lo que se conoce como hotlinking).

Para solucionarlo utilizaremos el plugin Blogger Image Import (descarga directa). Este plugin, una vez instalado, nos añadirá en el Menú Opciones una nueva pestaña llamada Blogger Image Import. El único parámetro que nos permite configurar es el número máximo de imágenes que deseamos importar y esto dependerá de nuestro blog en Blogger y el número de imágenes que tengamos en los posts.

Una vez hagamos click sobre el botón Start Import empezará el proceso de comprobación de todos los posts de nuestra instalación de WordPress:

1. Detectará aquellos posts que tengan llamadas a imágenes con una URL como la comentada antes.
2. Descargará la imagen a la nueva instalación y
3. Realizará las modificaciones oportunas a los posts para realizar las llamadas directamente sobre la nueva ruta en la nueva instalación.

Arreglo de los enlaces al propio blog

Muchas veces cuando escribimos un post hacemos referencia a otra entrada escrita anteriormente en nuestro blog. Como las URL’s se suelen utilizar de forma absoluta, nos encontraremos con posts en la nueva instalación que siguen enlazando con el blog anterior en Blogger.com. Realizar las modificaciones para que apunten al nuevo dominio será tan fácil como realizar una operación de "Buscar y reemplazar".

Para ello nos encontramos con otro plugin (Search and Replace WordPress Plugin, descarga directa) que nos permite realizar estas operaciones de forma sencilla.

Una vez instalado, nos aparecerá una pestaña nueva en el Menú "Gestionar" de WordPress con el nombre "Search and Replace".

Este plugin nos permite realizar las operaciones de buscar y reemplazar sobre diferentes campos: comentarios, títulos, resúmenes, contenidos de posts, etc.

Los reemplazos a realizar dependerá de nuestro blog en Blogger y de la nueva instalación. Por ejemplo si en Blogger utilizábamos enlaces con las www delante y nuestra nueva instalación del blog la vamos a realizar en un dominio propio, simplemente tendremos que realizar bússquedas de este tipo:

http://www.nombre.blogspot.com por http://www.nuevodominio.com

http://nombre.blogspot.com por http://www.nuevodominio.com/blog

Se aconseja disponer de una copia de seguridad por si algo sale mal, o nos tocará volver a empezar.

Si hay que volver a empezar existe un plugin llamado WP-Suicide (descarga directa) que deja el blog sin posts, comentarios ni categorías para volver a empezar desde cero sin tener que tocar la instalación de WordPress.

Preparación de los permalinks de WordPress

Los permalinks, para que sigan la misma estructura que tenían en Blogger.com, se pueden configurar de dos formas en el menú Opciones / Permalinks

1. Con terminación en html:

De la forma www.blog.com/2006/12/post.html

Para ello introduciremos en el campo estructura personalizada del menú Opciones / Permalinks la siguiente cadena:

/%year%/%monthnum%/%postname%.html

2. Sin terminación en html:

De la forma www.blog.com/2006/12/post/

Para ello introduciremos en el campo estructura personalizada del menú Opciones / Permalinks la siguiente cadena:

/%year%/%monthnum%/%postname%

Ahora con este formato tendríamos un post de ejemplo algo así:

http://www.knxdt.com/2008/03/04/articulo-de-prueba-blogger-a-wp.html

Pero en Blogger nos podríamos encontrar con que es algo como:

http://www.knxdt.com/2008/03/04/articulo-de-prueba-blogger-a_25.html

Como puedes observar los permalinks no son idénticos, por lo cual corremos el riesgo de que no se lleve a cabo la igualación que pretendemos, sin embargo nos servirá. Como ya hemos guardado el formato de los permalinks en el modo Custom (personalizado) nos valdremos de un plugin que es capaz de mantener los permalinks de Blogger en WordPress, es decir, cambiará la estructura de los permalinks para hacerlas iguales.

El plugin que nos permitirá mantener los permalinks de Blogger en WordPress es el llamado plugin wp-maintain-blogger-permalinks-10:

Lo primero que debemos hacer es descargarnos el archivo zip y extraer el php, el cual subiremos a nuestra carpeta wp-content/plugins/. Desde el Dashboard de WordPress y en la pestaña Plugins activamos el plugin WP Maintain Blogger Permalinks.

Luego vamos a la pestaña Manage> Maintain Blogger Permalinks y hacemos clic en el botón que también dice “Mantain Blogger Permalinks”.

Nos aparecerá una relación de todos los posts que tenemos en nuestro WordPress y cuyas url’s han sido editadas y pasadas a “formato” de permalink Blogger. Este plugin funciona al 100% y está optimizado incluso para las últimas versiones de WordPress.

3.- Redirección

Cambiar la plantilla de blogger para redireccionar a nuestro nuevo dominio

Con el objetivo de redireccionar todo el tráfico que vaya a nuestro antiguo blog en Blogger debemos cambiar la plantilla y republicar todo el blog. De esa forma, cualquier solicitud de página en blogger será redireccionado a la nueva instalación.

Puedes descargarte esta plantilla: (en este caso el nuevo blog está en la raiz del dominio) redirect.html
Recuerda cambiar los valores para tu antiguo blog en blogger: tublog.blogspot.com y el nuevo blog: www.tudominio.com.

A la hora de redireccionar y tratando de ser lo más “políticamente correcto” con los buscadores se han tenido en cuenta los siguientes aspectos:

1.- Ofrecer al usuario la nueva dirección para que haga click y la mantenemos en pantalla un tiempo prudencial (de 5 a 10 segundos).

2.- Si el usuario no hace click en ese enlace y tiene JavaScript activado le redireccionamos a la nueva dirección. Se utiliza JavaScript porque la redirección que se realiza a través de la etiqueta META REFRESH no transmite el referer al servidor web de destino y no se pueden hacer redirecciones correctas con htaccess.

3.- Si el usuario no tiene JavaScript activado y no hace click sobre el enlace facilitado, pasados 10 segundos redireccionamos a la nueva instalación enviando la dirección del permalink en Blogger para ser tratada por nuestro servidor web Apache a través del htaccess.

Si estamos cargando la home page del blog en Blogger, redireccionamos a la home del nuevo blog y si estamos en cualquier otra página, redireccionamos a esa página. Para eso hemos realizado la importación de todos los posts y mantenido la misma estructura de permalinks.

Puedes descargarte esta otra plantilla: (en este caso el nuevo blog es un subdominio) redirect2.html
Recuerda cambiar los valores para tu antiguo blog en blogger: tublog.blogspot.com y el nuevo blog: tublog.tudominio.com.

Modificar el fichero .htaccess de nuestra instalación de WordPress

En este paso, tenemos que tener en cuenta si pusimos los permalinks con terminación en HTML o sin ella y modificar el fichero .htaccess de nuestra instalación.

Para modificar el archivo .htaccess podemos usar la gestión de WordPress en el menú Gestionar / Archivos fichero .htaccess

Recuerda cambiar los valores por los tuyos.

Si tenemos los permalinks con terminación en .html sólo tenemos que tener en cuenta las dos primeras líneas siguientes, en caso de no terminar en .html los permalinks, deberemos introducir la tercera línea también en nuestro fichero .htaccess

Líneas a añadir al fichero .htaccess de la raiz de nuestro blog:

1.- La siguiente línea redirecciona los posts al usuario que no tiene activado JavaScript y no ha hecho click en la URL facilitada:

RewriteRule ^bypermalink/http:/tublog\.blogspot\.com/(.*) http://tublog.tudominio.com/$1 [L,R=301]

2.- La siguiente línea redirecciona los archivos mensuales generados por blogger:

RewriteRule ^([0-9]{4}+)_([0-9]{2}+)_([0-9]{2}+)_(.*)_archive\.html$ /$1/$2/ [L,R=301]

3.- Si nuestros permalinks no tienen terminación en .html la siguiente línea modifica las solicitudes que vengan con ella para que WordPress las acepte:

RewriteRule ^([0-9]{4})/([0-9]{1,2})/([^/]+)\.html$ $1/$2/$3/ [QSA,R=301,L]

NOTA: Para evitar que aparezcan errores de XML hay que seleccionar una plantilla clásica y luego cargar el fichero.

4.- Mantener los suscritos por medio de Feedburner

Para conservar los suscritos debe usarse Feedburner, el cual nos permite redireccionar los feeds de Blogger hacia su RSS, por ejemplo en Blogger, al usar Feedburner pasa de:

http://tublog.blogspot.com/feeds/posts/default (sin dominio propio)
http://tublog.com/feeds/posts/default (con dominio propio)

a algo como:

http://feeds.feedburner.com/tublog

Ahora debemos saber que el formato de los feeds para WordPress es similar a:

http://tublog.com/feed/

Mientras sigamos en Blogger el formato de url por defecto (/feeds/posts/default) seguirá mostrándose sin problemas, pero una vez que migremos a WordPress, éste no encontrará la ruta y nos mostrará el mismo blog. Entonces lo que debemos hacer primero es actualizar la información de nuestro feed en Feedburner, así todos nuestros suscritos seguirán actualizados con nuestro blog , para eso nos loggeamos en nuestra cuenta de Feedburner y en la sección “My feeds” damos clic sobre nuestro feed y luego clic en la pestaña “Edit Feed Details” cambiaremos el campo que dice Original Feed donde reemplazaremos la url del http://tublog.com/feeds/posts/default por el de http://tublog.com/feed/.

Después de cambiar esta url del feed de origen hacemos clic sobre el botón “Save Feed Details” y listo. Con eso ya haremos que todo el contenido que publiquemos en nuestroblog se actualice en el feed de Feedburner y nuestros suscritos no tengan problema alguno. Ahora quedan dos problemas aún por resolver:

  • Redireccionar tublog.com/feed/ a feeds.feedburner.com/tublog
  • Redireccionar tublog.com/feeds/posts/default a feeds.feedburner.com/tublog

Para el primer caso de rediccionar el feed de WordPress al de Feedburner nos valdremos de un plugin. Lo primero que debemos hacer es descargarnos el plugin FeedBurner FeedSmith.

Una vez que ya lo hemos activado vamos al Dashboard de WordPress y luego a la pestaña Options > Feedburner.

En la opción 2 ponemos la url de nuestro feed de Feeburner y luego hacemos clic en Save, esto permitirá que la url de /feed de WordPress nos lleve a la url de Feedburner y además nuestros suscritos se conserven.

Lo que nos queda por hacer ahora es redireccionar el posts/default que quedó de Blogger hacia el feed de Feedburner. Para esto usaremos un redireccionamiento 301 editando nuestro documento access.

En la ruta raíz encontraremos un archivo llamado .htaccess. Accedemos a este archivo en modo edición y luego encontraremos algo similar a esto:

# BEGIN WordPress
<IfModule mod_rewrite.c>
...
</IfModule>
# END WordPress

RedirectMatch 301 ^/feeds/posts/default http://feeds.feedburner.com/tufeed

Eso permitirá que nuestro ex-feed de Blogger sea redireccionado a Feedburner.

Si están usando Mybloglog desde que han estado en Blogger entonces ellos automáticamente han llenado un campo asignado a la url de sus feeds y que al pasar a WordPress cambia.

Si este campo no se modifica nos encontraremos que la comunidad de blogs para Yahoo, llamada Mybloglog, no detecta las nuevas entradas sino que seguirá mostrando como última a aquella que publicamos en Blogger como último post.

Para modificarlo deben ir a Settings y allí en el campo que dice Primary Feed URL (RSS) deben poner la url nueva, la de su feedburner.


Problemas con el módulo de wordpress 'Blogger Import'
http://sweetsfoods.com/2011/04/import-blogger-wordpress-error-authorize-google-account.html

Problemas al modificar el php.ini en Dreamhost:
http://wiki.dreamhost.com/PHP.ini

« Blogger

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License