Entre Blogs Portal
"Concurso Ipod Touch 8GB"
bocabit.com / 932 entradas / 6,926 comentarios / feed /

Cómo dividir en partes un XML de Wordpress

Wordpress XMLUna de las características que tiene Wordpress, es la capacidad de exportar e importar en formato XML todo el contenido de nuestro blog a modo de backup. Ésto es muy útil, ya que cuando nos vemos obligados a cambiar de servidor por alguna razón determinada, importar una base de datos se puede convertir en una tarea que roza lo imposible, sobretodo si no contamos con privilegios suficientes en la misma o la versión de MySql del servidor en el que estábamos alojados difiere de la del destino.

Por éstas razones, resulta muy importante la antes mencionada característica de Wordpress. Sin embargo, cuando nuestro blog "crece", el tamaño del archivo xml que genera Wordpress también lo hace. El problema de ésto, es que Wordpress sólo puede gestionar (en teoría) archivos de un tamaño máximo de 2MB, y ése es el límite que nos ponen muchos hosts a la hora de subir un archivo, por lo que resulta imprescindible dividir en partes el XML si queremos recuperar todos nuestros datos.

A continuación, explico brevemente cómo y por dónde dividir un archivo XML de Wordpress, ya que no se debe hacer a ciegas debido a que éste contiene información estructurada sobre cada post, comentario, categorías, etc, de una manera ordenada.

Codificación del archivo

En primer lugar, debemos crear un archivo de texto ANSI codificado como UTF-8 sin BOM (ésto se puede hacer perfectamente en algún editor de texto completo como Notepad++ en Windows o Smultron en Mac). Es muy importante que la codificación se ésta, ya que en caso contrario no nos detectará caracteres como tildes, ñ, etc.

Estructura del archivo

La estructura de un archivo xml de Wordpress es la siguiente:

<?xml version="1.0" encoding="UTF-8"?>

<rss>
    <channel>
       /* INICIO INTRODUCCIÓN */
      <title>bocabit.com</title> /* Título del blog */
     <link></link>  /* Dirección del blog */
     <description></description>   /* Descripción */
     <pubDate>Thu, 05 Jun 2008 13:35:15 +0000</pubDate> /* Última fecha de publicación */
     <generator>http://wordpress.org/?v=2.5.1</generator>  /* Versión de Wordpress */
     <language>en</language> /* Idioma */
     <wp:wxr_version>1.0</wp:wxr_version>
     <wp:base_site_url>http://bocabit.com</wp:base_site_url> /* Dirección base */
     <wp:base_blog_url>http://bocabit.com</wp:base_blog_url> /* Dirección base del blog */
         /* FIN INTRODUCCIÓN */

          /* INICIO CATEGORÍAS */
     <wp:category></wp:category>
          /* FIN CATEGORÍAS */

          /* INICIO TAGS */
     <wp:tag></wp:tag>
          /* FIN TAGS */
         
     /* INICIO POSTS */
    <item></item>
    /* FIN POSTS */

      </channel>
</rss>

Puntos a tener en cuenta

  1. Debemos poner las etiquetas xml, channel y rss en todos los archivos
  2. No debemos dividir un dato etiquetado con "item" por la mitad. Cada elemento debe estar entero.
  3. 2MB vienen a ser unas 31.600 líneas de código (Éste deberá ser el tamaño máximo de cada fichero)

Ejemplo

Si queremos dividir un archivo XML que ocupe 4'3 MB (Por poner un ejemplo), deberemos crear 3 archivos xml distintos, cada uno de 31.600 líneas (más o menos) como máximo.

En el primer archivo, pondremos la introducción, las categorías y los tags. Además, también meteremos todos los posts que nos entren (cada item es un post).

En el segundo y tercer archivo respectivamente, partiremos de donde terminamos de copiar el anterior, cogiendo el siguiente post y rellenando hasta llegar a las 31.600 líneas.

Importación

Cuando decidamos importar los archivos, creo que podemos hacerlo en el orden que queramos, aunque yo recomiendo hacerlo en el orden que los hemos dividido (en el primero debe estar la introducción).

Y hasta aquí, cómo dividir un archivo XML de Wordpress. Como veis, sólo hace falta analizar un poco la estructura del fichero y a partir de ahí no tiene ninguna dificultad, aunque es verdad que si tenemos un blog con muchas entradas, se puede convertir en una tarea muy pesada.

Portal de apuestas

Tutorial SvSIP: VoIP en Nintendo DS

SvSIPSvSIP es un programa para Nintendo DS que permite hacer llamadas telefónicas mediante VoIP a cualquier teléfono fijo de forma gratuíta. Su funcionamiento es realmente sencillo, aunque a continuación explicaré brevemente cómo hay que configurar el programa para poder llamar desde la portátil de Nintendo.

En primer lugar necesitamos crear una cuenta de VoipBuster. Para ello tenemos que ir a la página de VoipBuster, descargar e instalar el programa. Una vez instalado lo ejecutamos y nos saldrá una pantalla para registrarnos, y recordaremos el nombre de usuario y la contraseña ya que la deberemos utilizar para configurar el SvSIP.

Lo siguiente que haremos será bajar el SvSIP de la página de su autor (La que dice "First Public Version"), y después de extraer los archivos, parcheamos con el DLDI de nuestro flashcart el archivo .nds. Una vez hecho ésto, editamos el archivo config.txt de manera que quede de la siguiente manera:

# This is a comment in the config file.

# Set the URL of local ID (used in From header) (e.g.: sip:username@example.com)
--id sip:sip.voipBuster.com

# Set the URL of registrar server (e.g.: sip:example.com)
--registrar sip:sip.voipBuster.com

--domain sip.voipBuster.com

# Set realm (note: wildcard is now accepted) (e.g.: example.com)
--realm sip.voipbuster.com

# Set authentication username
--username VUESTROUSUARIO

# Set authentication password
--password VUESTRAPASSWORD

# Mandatory (for the moment) override the Contact information
# (e.g.: <sip:username@local_ip:5060;transport=UDP> )
--contact <sip:G@192.168.1.100:5060;transport=UDP>

# Optional registration interval (default 55) (for freephonie set 1800)
--reg-timeout 1800

Una vez editado, metemos todos los archivos en nuestra tarjeta y ya estará todo listo para poder hacer llamadas desde nuestra Nintendo DS. Recordad que hay que introducir los códigos de cada país, y que el de España es 0034.

Portal de apuestas

Cómo instalar AWStats en Dreamhost

Llevaba ya bastante tiempo buscando la manera de instalar AWStats en Dreamhost, hasta que por fin hoy he conseguido que todo funcione correctamente. Ninguno de los tutoriales que he encontrado por ahí me han funcionado, así que aquí presento el mío propio, que está basado en el que hay en el Wiki de Dreamhost, pero con algunas modificaciones.

Necesitamos tener acceso ssh (Se activa en las opciones de Dreamhost, creo que en la pestaña de usuarios) y entrar con tu nombre de usuario y contraseña con algún programa (Yo utilizo putty). Para este tutorial se utilizará "yourusername" como nombre de usuario y "mydomain" como nombre de dominio.
Continuar Leyendo »

Portal de apuestas

Estadísticas de Dreamhost con Wordpress

Al parecer hay un problema con las estadísticas nativas de Dreamhost (Analog) y los blogs gestionados con Wordpress y Textpattern situados en la raíz del directorio, ya que éstos muestran un error 404 al intentar acceder a las estadísticas. El problema está en el archivo .htaccess, y la solución es muy sencilla, basta con añadir el siguiente código antes del código que añade Wordpress al .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/(stats|failed_auth\.html).*$ [NC]
RewriteRule . - [L]
</IfModule>

El resultado final quedaría más o menos de la siguiente forma (Dependiendo de la estructura de nuestros permalinks):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/(stats|failed_auth\.html).*$ [NC]
RewriteRule . - [L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Aunque para ser sinceros, prefiero mil veces AWStats, porque Analog tiene una estructura bastante caótica...

Portal de apuestas

Cómo personalizar el IG Syntax Hiliter

IG Syntax Hiliter es un plugin de Wordpress que permite mostrar código en el blog de una forma agradable a la vista, pero uno de los problemas con los que me encontraba cada vez que lo activaba era que las preferencias no se me guardaban, por lo que aunque eligiera que no se mostraran los números de línea o el nombre del lenguaje, el plugin siempre se me "reseteaba" y los terminaba mostrando.

Para solucionar ésto, hay que editar un poco el código del plugin (syntax_hilite.php) y editar los valores booleanos iniciales a partir de la línea 464 hasta la 472 como más nos guste. Yo lo tengo de la siguiente forma para que no muestre el nombre del lenguaje ni los números de línea:

//create an array with the option values
    $igSHOptionsArr = array(
                            "ENABLED" => true,
                            "PLAIN_TEXT" => true,
                            "PLAIN_TEXT_TYPE" => "inbox",
                            "SHOW_LANG_NAME" => false,
                            "PARSE_COMMENTS" => false,
                            "LINE_NUMBERS" => false,
                            "FANCY_NUMBERS" => true,
                            "LINE_COLOUR_1" => "#3A6A8B",
                            "LINE_COLOUR_2" => "#26536A"
                        );

También me pasó que al cambiar de theme, el área de texto se me veía demasiado grande, pero lo único que había que hacer para solucionarlo era editar en el archivo syntax_hilite_css.css la líneas siguientes:
Para el área de texto:

.syntax_hilite { width:500px; }

Para la barra de texto plano:

.igBar { width:511px; }

En último lugar, si sois unos perfeccionistas, os gustaría que el botón que dice "PLAIN TEXT" fuera más claro, ya que hay mucha gente que ni siquiera lo ve. Para ello hay que ir a la línea 62 del plugin y editarla de tal forma que quede así:

$bBody .= "<div class=\"igBar\"><span id=\"l{$bId}\"><a href=\"#\" onclick=\"javascript:{$ig_jsPlainTxt}('{$bId}'); return false;\">CLIC PARA VER TEXTO PLANO</a></span></div>";

Espero que os sirva de ayuda a todos aquellos que no utilizabais este plugin por alguno de estos problemas. Podéis descargar una versión ya modificada del plugin AQUÍ.

Portal de apuestas

Cómo hacer un robots.txt para Wordpress (actualizado)

A raíz de este artículo de Sigt, se me ha ocurrido hablar sobre cómo debería ser un robots.txt para un blog de Wordpress, analizando un poco cómo son los de algunos de los blogs de más éxito que leo asiduamente.

Al crear un archivo robots.txt, estamos indicando a los diferentes bots de los buscadores qué archivos o rutas deben seguir e indexar y cuales no. Por ejemplo, si tenermos una carpeta con información privada sobre nosotros, y no nos interesa que se pueda acceder a ella por medio de buscadores, debemos desabilitarla ("Disallow") en el archivo robots.txt, ya que por defecto los buscadores recorren todo el sitio. En Wordpress, por ejemplo, las carpetas wp-admin o wp-includes sólo contienen información sobre el panel de administración y el funcionamiento interno del CMS, por lo que podrían estar perfectamente "desabilitadas" para la indexación, como tienen hecho en AlexSeo de la siguiente manera:

Disallow: /wp-admin/
Disallow: /wp-includes/

En Sigt van un paso más allá, y llegan a la conclusión de que todos los archivos o carpetas que empiecen por "wp-", el problema de ésto es que haciéndolo así estás vetando también la entrada a wp-content, que podría contener elementos que queremos que sean indexados, como por ejemplo las imágenes. Para ello tenemos que permitir ("Allow") la indexación de los archivos de un determinado tipo de ciertas carpetas (En este caso uploads):

Allow: /wp-content/uploads/*.gif
Allow: /wp-content/uploads/*.png
Allow: /wp-content/uploads/*.jpg

El método de Sigt es bastante más restrictivo que el de AlexSeo, aunque la elección de uno u otro depende de lo que el blogger considere más cómodo.

Puede que quieras que el buscador de Google indexe tus imágenes (En LaMatePorUnYogur tienen desactivada la indexación, mientras que en otros sitios la tienen activada, por lo que depende de cada uno), por lo que sería recomendable que añadieras una línea para permitir la entrada al bot de Google Images:

User-agent: Googlebot-Image
Allow: /

No se hasta qué punto es necesario o eficiente añadir un par de líneas para Google Images si ya tienes puesto "User-agent: *" (Que actúa para todos los bots de buscadores), así que si alguien me puede explicar este punto mejor que mejor.

Wordpres tiene un problema bastante considerable de cara al contenido duplicado, ya que por defecto se indexan todos los feeds y trackbacks. Para evitar ésto hay que añadir unas cuantas líneas al robots.txt, que tienen en común prácticamente todos los blogs (Inkilino, LaMatePorUnYogur o Sigt):

Disallow: /?s=
Disallow: /?ref=
Disallow: /feed
Disallow: /comments/feed
Disallow: /feed/$
Disallow: /*/feed/$
Disallow: /*/
feed/rss/$
Disallow: /*/trackback/$
Disallow: /*/
*/feed/$
Disallow: /*/*/feed/rss/$
Disallow: /*/*/trackback/$
Disallow: /*/*/*/feed/$
Disallow: /*/*/*/feed/rss/$
Disallow: /*/*/*/trackback/$

Por último lugar, pero no menos importante que lo anterior, es facilitar el acceso al Sitemap de nuestro blog (Deberíamos tener uno, sí), indicando la ruta del archivo de la siguiente forma:

Sitemap: http://bocabit.com/sitemap.xml

De esta manera, juntando todo lo anterior, el resultado final que debería funcionar a todo el mundo podría ser como el siguiente:

User-agent: *
Disallow: /wp-
Allow: /wp-content/uploads/

Disallow: /?s=
Disallow: /?ref=
Disallow: /feed
Disallow: /comments/feed
Disallow: /feed/$
Disallow: /*/feed/$
Disallow: /*/
feed/rss/$
Disallow: /*/trackback/$
Disallow: /*/
*/feed/$
Disallow: /*/*/feed/rss/$
Disallow: /*/*/trackback/$
Disallow: /*/*/*/feed/$
Disallow: /*/*/*/feed/rss/$
Disallow: /*/*/*/trackback/$

User-agent: Googlebot-Image
Allow: /

Sitemap: http://tuSitio.com/sitemap.xml

Algo que me ha llamado la atención es que algunos sitios como, como Inkilino, han añadido un par de líneas para permitir la entrada del bot de Adsense a todo el sitio:

User-agent: Mediapartners-Google
Allow: /

Y hasta aquí llega la lección de hoy, aunque aún me quedan algunas dudas, como por ejemplo si las etiquetas Allow tienen más importancia que las Disallow en el sentido que anulen algunos valores de estas últimas, y agradecería que si estoy equivocado en algo, que se me corrija ;)

PDTA: Me sorprende que Helektron no tenga un robots.txt ;)

EDITADO: Si queremos que nuestro blog salga en Google Blog Search, deberemos añadir la siguiente línea, pero en este caso hay que tener en cuenta que Google lo podría considerar como contenido duplicado, por lo que sería recomendable añadirla un par de meses después de que el blog tenga ya cierto "prestigio" para que tenga un PageRank superior al del feed de las entradas:

Allow: /feed/$

Portal de apuestas


bocabit.com
Cerrar