Jorge muestra como instalar un plugin que redirecciona tus feeds de WP a tu cuenta de Feedburner (plugin que vengo probando hace tiempo con excelentes resultados).

Como crear tu propio tema para Wordpress (Parte 1)

Bueno, ésta es la primer entrega de la serie “como crear tu propio theme para Wordpress desde cero”. En esta serie de artículos trataré de explicar, dummies-friendly, cuales son los pasos necesarios para crear tu propio theme o template para Wordpress, el sistema de publicación para blogs más usado hoy en día.

Qué necesitas saber/tener para aprovechar al máximo estos artículos:

  • Tener una copia de Wordpress 1.5 instalado en tu servidor personal o en tu hosting. Lo recomendable es hacer todas las pruebas en tu servidor web personal.
  • Mínimos conocimientos de XHTML, CSS y PHP.
  • Curiosidad por ver como funcionan las cosas y muchas ganas de sacar los vestigios de Kubrick de tu blog :)

Vá a ser un artículo realmente introductorio, apto para que cualquier persona curiosa —y con ganas de modificar su theme actual— pueda echar mano en el código y armar su propio theme para Wordpress. Sin más, empecemos entonces por ver lo primero: La anatomía de Wordpress.

La estructura de Wordpress

Wordpress tiene una forma bastante lógica de manejar las “caras” de los blogs. De hecho, ésta forma de armar un blog les será conocida a los que vienen programando sitios dinámicos. La idea es básicamente separar cada sección del blog en archivos independientes, de manera que cada archivo pueda modificarse como deseemos. Luego, cada archivo o sección del blog, podrá llamarse desde un archivo maestro para armar cada tema.

Este archivo maestro en Wordpress se llama index.php. Como veremos más adelante, este template (para no confundirnos, llamaremos así a los archivos de Wordpress que se usan para crear un tema) incluirá llamadas a los otros templates de cabecera, contenido, barra lateral y pie de página que conformarán el blog.

Además de estos templates fundamentales, Wordpress también tiene templates especiales para los comentarios, las categorías, los enlaces, los autores, los archivos del blog, la página de búsqueda y hasta para la página 404 (error que devuelve el servidor cuando no se encuentra una página determinada). Por otro lado, este CMS es también capaz de manejar páginas individuales para el blog. Esto nos permitirá, por ejemplo, manejar secciones (digamos, “acerca de”, “portfolio”, “contacto”, etc.). Si me estuvieron siguiendo, entonces ya se van dando una idea de donde radica el potencial de este sistema de publicación: Wordpress también puede ser usado como un perfecto CMS para sitios de propósito general, y de hecho, no tiene nada de que envidiar a sus primos más grandes como Drupal o Mambo.

Veamos gráficamente el árbol de directorios de una instalación clásica de Wordpress:

/
wp-admin
  	wp-content
		plugins
		themes
			classic
			default
	wp-images
		smilies
	wp-includes
…
…

En la raíz de una instalación de Wordpress encontramos los archivos de configuración del sistema de publicación, además de carpetas con funciones que luego serán usadas por el CMS (agrupadas en archivos con extensión PHP). La carpeta wp-admin contiene todas las funciones que se usarán en el panel de administración de Wordpress. En wp-images residen las imágenes que vienen con el CMS, (como ser los emoticones) y las imágenes que se usarán en el panel de administración (el logo del sistema, las imágenes de fondo). En wp-includes encontraremos las funciones que manejan los comentarios, los enlaces, y algo muy importante, las funciones que definen las etiquetas (tags) para armar los templates (veremos que son más adelante).

Dejamos para el último la carpeta wp-content, puesto que es la que más nos interesa. En ella deberemos incluir los templates que conformarán nuestro tema de Wordpress. Los templates de cada tema se agrupan en carpetas (fíjense que la instalación básica de Wordpress trae 2 temas por defecto, classic y default). Como no somos originales, nuestro nuevo tema será bautizado como “mitema”, por lo que crearemos una carpeta con ese nombre dentro del directorio themes.

Además, dentro de la carpeta wp-content, hay una sub-carpeta llamada plugins, que servirá como repositorio para la instalación de plugins para Wordpress. Un plugin permite personalizar el sistema agregando funcionalidades extra de una manera sencilla (basta copiar y pegar el plugin y activarlo desde el panel de administración).

En resúmen: Para crear un nuevo tema para Wordpress, el único directorio que nos interesa es /wp-content/themes/. En el estarán los templates que conformarán nuestro nuevo tema. Cada tema, tendrá su propia carpeta.

Esta fue la primer entrega. Mañana seguiremos explicando más sobre la creación de un tema nuevo para Wordpress. Cualquier duda, en los comentarios :)

Recupera tu contraseña de Wordpress

Hoy me sucedió algo muy tonto: Al quererme hacer el multitarea, instalando 3 copias de Wordpress para clientes en mi servidor local, me olvidé la contraseña de administrador de uno de ellos.

¿Como recuperar la contraseña sin borrar todo e instalar de nuevo? Sencillo. Las contraseñas de Wordpress están encriptadas resumidas, con un algoritmo de hash, en este caso, MD5. Lo que hice fue generar el hash para la cadena admin y modificar la tabla wp_users ingresando este hash para el usuario administrador, pisando, el hash de la contraseña que olvidé.

Digamos: La nueva contraseña que quiero poner es admin, entonces hago:

< ? echo md5("admin"); ?>

Esto me devuelve el hash para la palabra “admin”. Luego, inicio mi phpMyAdmin y modifico el campo user_pass de la tabla wp_users —siempre para el usuario administrador— por este nuevo hash. Y listo, contraseña cambiada ;)

¡Ah! También pueden directamente clickear en “olvidé mi contraseña” … pero los geeks nunca hacemos eso :)

Grave vulnerabilidad en Wordpress

Mariano recien posteaba que anda dando vueltas una muy grave vulnerabilidad en WP y aconsejaba a todos los bloggers a hacer backup.

Efectivamente, es así, según Secunia:

Input passed to the “cache_lastpostdate” parameter via cookies is not properly sanitised before being used. This can be exploited to inject arbitrary PHP script code.

En español indio: “Las entradas pasadas al parametro “cache_lastpostdate” mediante cookies, no son seguras. Esto permite inyectar cualquier codigo PHP”. Esta vulnerabilidad fue descubierta ayer 10 de Agosto y afectaría a las versiones 1.5.1.3 de Wordpress, pero no se descarta que también a versiones anteriores.

Para que esta vulnerabilidad sea explotada, la directiva de PHP register_globals tiene que estar activada (o sea, tiene que estar en on). Cómo saber si tu servidor tiene esa directiva activada? Ejecutando la función php_info(). Copiá y pegá el siguiente código en un archivo con extensión .php y subilo a tu servidor, ejecutalo y luego buscá la directiva register_globals, si tiene el valor on, es probable que seas susceptible a este tipo de ataque:

< ?
phpinfo();
?>

Así que hagan backup de su Wordpress ahora, o bajen una nightly build, que al parecer en una de esas versiones ya estaría arreglado el problema.

Actualización: Al parecer reemplazando una linea en el archivo /wp-includes/functions.php, el problema estaría solucionado. Buscá la línea:

$lastpostdate = $cache_lastpostdate[$timezone];

Y reemplazala por:

$lastpostdate = preg_replace('/[^0-9 :\-]/','',$cache_lastpostdate[$timezone]);

Todo esto es no-oficial, así que estás advertido ;)

Actualización (y vamos): Había un error en las comillas de línea anterior. ¡Gracias Fede por el chiflido!

Matt responde sobre el “spam” de Wordpress.org

La mejor respuesta cuando te equivocaste en hacer algo, es simplemente, admitirlo.

Matt acaba de hacer un post explicando todo lo sucedido y admitiendo que se ha equivocado.

The articles hosted content thing was just a short-term experiment, an interesting idea (original and relevant Wikipedia-type content on the site) that was badly implemented. As an experiment it could have been conducted much better than it was. The content should have been more topical to WP issue, I should have kept up with the content that was going up, the links should have never had the overflow CSS, and I should have discussed it with more people. Each was a mistake and they combined badly — I’m very sorry.

Me ha gustado la sincera (y larga) respuesta de Matt y sobre todo, este error me hizo “humanizarlo” un poco más: Nadie es perfecto en este mundo, ni puede tratar de serlo las 24 horas del día.

Actualización: Si no saben de que estoy hablando, éste articulo puede aclarar un poco (en inglés, el más completo hasta ahora). O sino por aquí en español.

Yo me pongo la camiseta

Wordpress t-shirt

Nicole Lee suda la remera , en la fiesta de upgrade a la versión 1.5 —recién salida del horno— de Wordpress. Más fotos.

Wordpress “nofollow” plugin

Para los que estén interesados en aplicar el atributo rel=”nofollow”, para los comentarios de una instalación de Wordpress, ya hay un plugin disponible. En Buayacorp hay otro también, con instrucciones en español.

No he tenido tiempo de probarlos (no me animo a hacer mucho desde una máquina de un cybercafé) así que cualquier cosa chiflen en los comentarios. You guys are on your own on this one :P

Voy a aclarar un poco el asunto (como lo entiendo) sobre este atributo, puesto que veo un poco de confusión en general en la blogósfera. Este atributo no es la bala de plata que parará el spam de tus comentarios, el spam seguirá entrando, pero la web del spammer no recibirá la suma de page rank de nuestro blog. En consecuencia -en un futuro deseable, diría yo-, cuando los spammers se dén cuenta de esta gran acción conjunta, dejarían de hacer spam puesto que ahora sería inútil (ya que, y explicado en pocas palabras, el sentido de hacer spam en blogs, es tener un page rank mas alto en Google para la web del spammer, cosa que se hace haciendo comentarios con la web del spammer como contenido).

Espero no haberlos confundido más todavía :D

Gravatars: Una excelente idea

Vía Gance me entero de Gravatar (Globally Recognized Avatar), un sistema que permite de una forma realmente sencilla mostrar avatars en los comentarios de cualquier blog.

Los avatars son imágenes que sirven para identificar rápidamente a una persona, como así también le dan un toque de “humanidad” al medio. Se usan mucho en foros de discusión para identificar a alguien en un thread. En MSN Messenger, se cambió este feo nombre por el más comercial display pictures.

Ejemplo de avatars
Avatars en 16-Bits

Ahora bien, si se usaban desde hace mucho en foros, porqué no usarlos en los blogs ? Ahora se puede. Este sistema permite asociar una dirección de mail con el avatar que quieras, almacenado en el servidor de ellos, de esta manera te aseguras que cuando comentás en cualquier blog, con solo poner tu dirección de mail el blog muestra el avatar que elegiste (siempre y cuando el blog tenga activado el sistema de Gravatar).

Activar Gravatar en un blog es fácil, en Wordpress se hace con un plugin, lo que quiere decir que te tomará máximo 5 minutos ^_^ Lo bueno es que funciona con muchos sistemas de publicación, Blogger incluído en proceso :P

En 16-Bits ya lo activé, ya subí mi avatar y para los que todavía no tienen uno, hice uno también (prueben como quedó en éste post, por ejemplo). Obviamente, cuando suban sus propios avatars, el sistema cambia el que hice por el de ustedes. Cheto, no ?

Fomenten su uso, algunos avatars son muy copados, y como dije, le dan un toque de “humanización” al medio. Algunos blogs que ya tienen avatars: Binary Bonsai, Fabio y Korochi.

Me pareció genial la idea :D Espero ver sus avatars dando vueltas en varios blogs !



Copyright © 2004–2009 Rodrigo Galindez. All rights reserved. Web hosting by XMundo.

RSS Feed. Proudly powered by Wordpress. Correct at time of going to print.