Agregar descripciones a categorías masivamente

Estoy desarrollando un "proyecto" con mi amigo y socio Diego, y el otro día chequeando cosas que nos faltan para terminar, nos topamos con el problema de las descripciones en las categorías, ya que vamos a trabajar con muchas categorías (unas 200 eran en ese momento) y necesitábamos hacer algo que nos ahorrara un poco de trabajo, por lo que empezamos a probar y finalmente Diego dió con el código que a continuación les paso.

Para dar un ejemplo imaginemos que hoy queremos hacer lo que hace softonic con las descripciones de las categorías (o la de programas, que está aún más automatizada.), que sería agregar descripciones masivamente a las mismas.

La estructura para las categorías que cuenta el sitio antes mencionado es la siguiente: "Descargar programas de categoria en Softonic. Programas gratis y en español ¡Bájatelos!".
Ejemplo: "Descargar programas de Antivirus en Softonic. Programas gratis y en español ¡Bájatelos!".

Suponiendo que queremos hacer o tenemos un sitio de software y queremos poner algo así como lo que hace softonic tenemos dos maneras de hacerlo: "Virtualmente" o "Físicamente", paso a explicar:

Virtualmente sería agregar la meta tag description en el theme, por ejemplo:

PHP:
  1. <meta name="description" content="Descargar programas de <?php single_cat_title(); ?>. Programas gratis y en español ¡Bájatelos!" />

Mientras que la manera física de hacerlo sería escribirlo en la base de datos, que es lo que vamos a hacer.

La diferencia de estas 2 formas está en que de la forma "virtual" estamos obligados a mostrar siempre lo mismo y cuando necesitemos cambiar la descripción de una sola categoría tenemos que agregar tags condicionales y no le veo mucho sentido, en cambio de la manera "física", cuando tengamos ganas de editar los datos de una categoría en particular simplemente vamos a /wp-admin/edit-tags.php?taxonomy=category y editamos la descripción. Fácil, ¿no?.

Para editar las categorías de forma "física" van a tener que entrar a la base de datos, ir a la solapa sql y hacer la siguiente consulta:
(no se olviden de adaptarla a sus necesidades :P )

SQL:
  1. UPDATE wp_term_taxonomy LEFT JOIN wp_terms ON wp_term_taxonomy.term_id = wp_terms.term_id
  2. SET wp_term_taxonomy.description = CONCAT('Descargar programas de ',wp_terms.name,'. Programas gratis y en español ¡Bájatelos!')
  3. WHERE wp_term_taxonomy.taxonomy = 'category'

"wp_terms.name" escribe el nombre de la categoría, asi que simplemente editenlo a gusto.

Dejo un par de capturas por si se les complica para llegar a "sql".

robots.txt para WordPress

En innumerables ocasiones he leído en foros consultas, dudas y problemas relacionados al robots.txt, también un par de veces me han preguntado y la respuesta es la misma que suelo dar la mayoría de las veces que me preguntan algo sobre un sitio: DEPENDE.

Para entender que robots.txt es el que más se ajusta a nuestras necesidades, primero hay que entender en que consiste, una breve explicación:

El protocolo de robots.txt es un método para evitar que ciertos bots que analizan los sitios Web agreguen información innecesaria a los resultados de búsqueda.(Wikipedia)

Básicamente un robots.txt consiste en indicar el robot y lo que queremos que haga, el robot se indica como "User-agent: nombre del bot" y las órdenes "Allow :", "Disallow :"

Por ejemplo si queremos que ningún robot pueda acceder al directorio "privado" vamos a poner lo siguiente:

User-agent: *
Disallow : /privado/

El caracter "*" es usado como comodín para indicar todos los robots, por ejemplo si quisiéramos que solo el robot de Yahoo no ingrese a la carpeta "privado" vamos a poner lo siguiente:

User-agent: Slurp
Disallow : /privado/

Hace bastante tiempo, WordPress (o sus desarrolladores) eran medios torpe y no incluían las meta tags noindex y nofollow en el área de administración y había que decirle al bot que no indexe el login por ejemplo, hoy ya eso no es un problema.

Como dije al principio, el robots.txt depende de que necesitemos y de las preferencias nuestras, por ejemplo a mi no me gusta que se indexe el archivo (2009/03), ni tampoco lo de autor (/author/*), ni las páginas (/page/*).

En el robots.txt también podemos incluir la dirección de nuestro sitemap del modo "Sitemap: http://dominio.com/sitemap.xml"

La orden "Allow" no suele ser muy utilizada, en mi caso la uso si creo algún directorio y quiero que google lo indexe más rápido, o para las categorías, tags e imagenes, aunque a veces no es necesario.

Muchos siguen teniendo en cuenta robots.txt de hace 3 años llenos de código innecesario, mi recomendación es que hagan un robot que sea lo más corto posible, como por ejemplo:

User-agent: *
Disallow:
Sitemap: http://dominio.com/sitemap.xml

Tengan en cuenta que los bots son case sensitive, esto quiere decir que no es lo mismo decirles que un directorio se llama "Privado" o "privado".

Pueden encontrar información más detallada sobre los robots.txt en la web de los robots.

Permisos CHMOD – Lo que necesitás saber

En muchos foros he leído sobre problemas en WordPress que son debido a falta de privilegios causados por permisos mal asignados a la hora de realizar un cambio (generalmente en el htaccess o en directorios de caché o uploads), y he indicado que deben dar CHMOD 777 al htaccess y muchos se quedan desorientados sin saber siquiera lo que es CHMOD, a continuación para los fieles que aún siguen leyendo, una explicación lo más breve que pude escribir.

En pocas palabras, podemos decir que CHMOD - abreviatura de change mode- sería el comando encargado de asignar permisos tanto a archivos como a directorios en sistemas tipo Unix.

Permisos de archivos

Los permisos de archivos básicos son 3:
r - read (lectura) Permite: leer un archivo o contenido de un directorio.
w - write (escritura) Permite: Escribir (modificar) o eliminar un archivo o directorio.
x - execute (ejecución) Permite: Ejecutar (acceder) a archivos o directorios.

La combinación de estos 3 permisos produce una cadena que se entiende como comando chmod.

Usuarios

UGOA (clases de usuarios)

u - user (usuario) Dueño del archivo
g - group (grupo) Usuarios miembros del grupo de archivos.
o - others (otro) Resto de usuarios que no son ni user ni group (ejemplo: un usuario que entra a un sitio).
a - all (todos) Others, group y user.

Existen 2 clases o maneras de dar o asignar permisos a los usuarios: Modo Carácter y Modo Octal, generalmente en "lo que hacemos nosotros" utilizamos Modo Octal (Sistema de numeración de 8 dígitos).

Notas para entendernos mejor

*Los permisos chmod pueden estar expresados en números o en letras, las letras pueden estar en grupos de 3 caracteres cada uno, siendo el primer grupo el encargado de indicar los permisos de owner, el segundo de group y el último para others, mientras que mediante números podemos expresar un solo grupo de 3 dígitos que puede variar del 000 al 777 como vemos en el siguiente ejemplo:

Arriba ingresé una serie de 10 caracteres y anteriormente les había comentado que eran 9 siempre que estemos hablando de letras, esto es por que el primer caracter (rojo) es el que indica si es un directorio (d), si es un archivo (-) o si es un link (l) (también pueden aparecer 3 caracteres más pero es muy poco probable), en el ejemplo estamos hablando de un archivo, si estuviéramos hablando de un directorio sería:
(more...)

Mudar o mover un blog de hosting y no morir en el intento

La mudanza puede ser cruel algunas veces...

Hay situaciones en la vida de un escritor de internet en las que es necesario cambiar de hosting, mudarse de alojamiento, o como quieran llamarle, el asunto es que tenemos que irnos de donde estamos y tenemos que empezar una migración, junto a ello, la necesidad obviamente de no perder ni 1 sola imagen y mucho menos alguna visita, a continuación unos pocos consejos para que mudar un blog sea una cosa de unos minutos y no una complicación.
Antes que nada, como para todo lo que hagamos algún día en la www, vamos a necesitar backup de un par de cosas, pero primero de la base de datos, la mejor forma que he encontrado de hacerlo es desde phpMyAdmin. Para los que no tengan idea como hacer esto, hice un video -ojo, bastante informal- en donde están los pasos.
Luego de terminar el bakup de la base de datos y haber chequeado que es válido, generalmente bajo estos archivos:
De /:
wp-config.php
sitemap.xml
sitemap.xml.gz
.htaccess
favicon.ico
Archivos de verificación de google, yahoo, etc.

Todo lo que hay en wp-content (uploads, themes, plugins)

Una vez que tengo eso listo, paso a subir un WordPress limpio al nuevo servidor, todos los archivos menos la carpeta wp-content y el install.php que está en /wp-admin. Cuando termino subo el wp-content que tengo de backup y los archivos a /, verifico el wp-config para que no tenga problemas con la base de datos y voilá.

Estupid tip: siempre es importante trabajar con opendns o google public dns (que no lo he usado) en estos casos, ya que podemos trabajar en el sitio al rato que cambiamos las dns en caso de ser un dominio genérico, aunque los .com.ar nunca tardan más de 30 horas en actualizar las dns.

Instalar múltiples blogs en la misma base de datos

La mayoría de las veces cuando los blogs están dando sus primeros pasos junto a quien lleva las riendas de los mismos están limitados a comprar un hosting barato, ya que al no tener ganancias o tener muy pocas y al no tener mucho tráfico con un hosting simple puede alcanzar y sobrar.

Instalar múltiples blogs en la misma base de datos puede servir cuando se limitan el número de bases de datos que se pueden crear, generalmente son 3 o 5 para los host chicos, es algo que lleva poco tiempo y es fácil de hacer, asi que dejo de rodeos y vamos a instalar wp.

Por supuesto hay que crear una sola base de datos y un usuario y hay que dejar todos los wp-config.php iguales, lo único que hay que cambiar es la línea que por defecto es:

$table_prefix = 'wp_';

Pueden poner cualquier prefijo de bases de datos, puede ser el nombre del sitio o simplemente "wp1_", "wp2_", "wp3_", etc.

Quedará algo así:

Checklist para luego de instalar WordPress

El otro día comenté en Twitter la idea de hacer una checklist para después de instalar WordPress y varios dijeron que era buena idea, asi que acá vamos.

checklist

Luego de instalar WordPress (de ahora en más Wp) y haber eliminado el install.php, modificando varias cosas que son sencillas podemos aprovechar varias de las ventajas de este cms, a continuación una lista de acciones que realizo en general luego de instalar Wp, por lo que pueden estar o no de acuerdo con esto.

Nota: Las secciones que salteo son las que no modifico en primer momento.

Lo primero que hago es crear un nuevo usuario con permisos de administrador (/wp-admin/user-new.php), dejo de usar el usuario Admin y me logueo con el usuario que cree anteriormente, ahí comienzo los cambios, en primer lugar limpiar el panel de administración (Dashboard).

Haciendo clic en "Screen Options" (/wp-admin/index.php#screen-options) sale una lista de opciones desplegables, yo siempre dejo tildadas las primeras 3.
(more...)