Hace unas semanas me tuve que preparar un mini-curso para los del departamento sobre WordPress, así que ya que el trabajo está hecho, lo mejor es compartirlo por si a más personas les puede ser de ayuda:
1. ¿Qué es WordPress?
Es un CMS (Sistema de Gestión de Contenidos) especialmente pensado en la publicación de bitácoras pero que puede ser usado para la creación de webs de edición fácil y rápida. Tiene una serie de funcionalidades que vienen en su núcleo (gestión de feeds, búsquedas, etiquetas, categorías, …) y luego se le pueden añadir otras muchas a través de plugins (por ejemplo, un detector de spam).
Con WordPress tenemos dos opciones: crearnos un blog en su plataforma comercial (wordpress.com) o en nuestro propio servidor gracias a su software bajo licencia GPL (wordpress.org). En ambos casos el gasto es cero pero con excepciones. En el primero, determinadas funcionalidades son de pago (por ejemplo, la posibilidad de editar el css de nuestra plantilla) y en el segundo, el coste estará en el servidor en el que decidamos montar nuestro blog.
En 2003, el proyecto b2\cafelog, que contaba con unos 2000 blogs, se dividió en dos ramas: b2evolution y WordPress. De la mano de Matt Mullenweg y Mike Little, la plataforma ganó muchos usuarios coincidiendo con el cambio de licencia de Movable Type.
Es de código abierto, está escrito en php y usa MySQL como gestor de base de datos. Uno de sus puntos más fuertes es la enorme comunidad de desarrolladores que tiene a sus espaldas. Al ser software libre, cualquiera puede escribir un plugin para agregar una funcionalidad determinada: desde la más rara (que nos aparezcan frases del musical Hello, Dolly! en nuestro panel de administración) a la más avanzada. Por esta razón tenemos un gran repositorio de plugins y plantillas para personalizar tanto como queramos nuestro site.
Como curiosidad queda que cada nueva versión recibe el nombre de una leyenda del jazz: Miles Davis, Art Blakey, Charles Mingus, Billy Strayhorn,…
1.1. Pros y contras de WordPress.com y WordPress.org
- Pros de WordPress.org: es software libre, lo que nos aporta una transparencia de su funcionamiento. Además cuenta con una gran comunidad de desarrolladores que mantienen el sistema vivo y en continua evolución. El contenido es completamente tuyo dado que eres tú el que almacena los archivos y la base de datos del blog. Se tiene un control total sobre el diseño. Permite importar contenidos de otras plataformas como Blogger, LiveJournal, Movable Type,… Se puede ampliar fácilmente la funcionalidad de este gestor de contenidos mediante extensiones.
- Contras de WordPress.org: somos los responsables de la instalación y del mantenimiento del software y WordPress se caracteriza por las continuas actualizaciones para mejorar versiones anteriores y arreglar los fallos que éstas pudieran tener. Se necesita disponer de alojamiento y de dominio. Las copias de seguridad corren de nuestra cuenta.
- Pros de WordPress.com la plataforma evoluciona al mismo ritmo que su hermana libre (WordPress.org), lo que hace que sea un sistema que se adapta a las novedades que aparecen en la cambiante Red. Nos ahorramos los gastos de un servidor y un dominio propio, así como el trabajo que supone actualizar la versión del software.
- Contras de WordPress.com: si deseamos instalar plugins o hacer modificaciones sobre el diseño de nuestra bitácora, deberemos tirar de cartera. Lo mismo que para ampliar los 3 GB de espacio para el almacenamiento de imágenes y ficheros subidos.
WordPress tiene una parte visible para todo el mundo (a no ser que lo hagamos privado mediante un plugin) y una parte desde la que se administra los contenidos. Normalmente, el acceso a esa parte de administración está en la dirección http://urldelblog/wp-admin/
1.2. Tipos de usuarios
Por defecto, en WP, está desactivada la opción de que cualquiera pueda registrarse. Esa opción se habilita desde el panel de control, en Opciones Generales. Allí, conjuntamente se añade el rol por defecto que tomarían esos nuevos usuarios.
En WordPress existen cinco perfiles con diferentes privilegios (si queremos crear otros roles con permisos distintos, tendremos que instalar un plugin que nos provea de esa funcionalidad):
- Suscriptor: es un mero lector que puede configurar su avatar, su dirección de correo, su página web, …
- Colaborador: puede crear entradas pero no las puede publicar.
- Autor: puede crear entradas y publicarlas.
- Editor: puede crear, eliminar, modificar y publicar entradas (tanto suyas como de otros). Lo mismo con las páginas, las categorías y los enlaces del blogroll.
- Administrador: a lo que hace el editor, se le suma la administración de usuarios, gestión de plantillas y plugins, así como opciones generales del blog.
Tareas | Admin | Editor | Autor | Colaborador |
Entradas : Crear nuevas | Sí | Sí | Sí | Sí |
Entradas : Publicar | Sí | Sí | Sí | No |
Entradas : Modificar – Eliminar | Sí | Sí | No | No |
Páginas : Crear | Sí | Sí | No | No |
Páginas : Modificar – Eliminar | Sí | Sí | No | No |
Categorías de Entradas : Crear | Sí | Sí | No | No |
BlogRoll : Mantener | Sí | Sí | No | No |
Presentacion ( Plantillas y Widgets ) : Modificar | Sí | No | No | No |
Usuarios : Mantener | Sí | No | No | No |
Opciones ( Generales, redacción, lecturas, etc ) : Mantener | Sí | No | No | No |
Roles vs. Capacidades de cada rol
2. Instalación
- Bajamos el paquete de WordPress en castellano
- Extraemos el .zip descargado y copiamos la carpeta en /var/www/blog (o el directorio desde donde se sirvan las páginas por el apache). La estructura de WordPress es la siguiente:
- wp-config.php: fichero de configuración. Aquí está almacenado el usuario y el nombre de la base de datos, así como otros datos de seguridad. Es importante que este fichero no tenga lectura más que por el owner del mismo. Este archivo no se machaca con las actualizaciones de WP.
- wp-admin y wp-includes: carpetas que guardan los ficheros php que hacen que funcione el blog. Ambas carpetas se machacan con las actualizaciones.
- wp-content: esta carpeta guarda los datos y configuraciones propias del blog. No se toca nada en la actualizaciones de WP. La estructura interna es la siguiente:
- uploads: todas las imágenes, vídeos y archivos que se suban a la librería de wordpress. Normalmente se organiza por años y luego por meses. Ejemplo: uploads/2009/12 (pero se puede configurar desde Opciones –> Misceláneas).
- plugins: todos los plugins que tenemos disponibles para el blog (aunque no estén activos).
- themes: todas las plantillas que tenemos disponibles para «vestir» al blog.
- languages: aquí van los ficheros .mo de los idiomas en los que queremos tener WP (tanto la parte visible como la de administración). Para indicar luego que el blog esté en un idioma u otro, habrá que añadir una línea en wp-config.php como la que sigue: define (‘WPLANG’, ‘es_ES’); donde es_ES es el nombre del fichero .mo (tienen que coincidir en nombre).
- Ponemos los permisos adecuados para la carpeta blog (como owner y group al usuario de apache):
chown -R www-data:www-data blog
mysqladmin -u root -p create nombrebd
$ grant all on bd.* to user@localhost IDENTIFIED BY ‘pass’;
$ flush privileges;
chmod o-w wp-config.php
chmod o-r wp-config.php
chmod g-w wp-config.php
chmod g-r wp-config.php
- wp-config-sample.php
- wp-admin/upgrade.php
- wp-admin/install.php
- wp-admin/installer-helper.php
- Si no vamos a importar ningún blog de otro sistema, borramos también: wp-admin/import/
3. Configuración
Tras la instalación es recomendable configurar las siguientes opciones:
- Por razones de seguridad, cambiamos el nombre por defecto del usuario administrador (admin). Para ello, creamos un usuario con el rol de administrador, iniciamos sesión con esa nueva cuenta y borramos la de admin, asignando a ese nuevo usuario todo lo creado por admin.
- Generamos una SECRET_KEY y unas Security Keys y las ponemos en wp-config.php
- Cambiar los permalinks: en personalizada ponemos /%postname%/ o la forma que más nos guste. A poder ser, que sean url’s «bonitas».
- En Opciones –> Discusión dejar sólo marcada la opción «El autor del comentario debe rellenar el nombre y el e-mail» para que no estén todos los mensajes moderados por defecto.
4. Plugins
Como hemos comentado anteriormente, WP tiene un núcleo con funcionalidades básicas que pueden ser complementadas por plugins. A continuación vamos a describir algunos de los más interesantes, aunque podremos descargarnos muchos más desde el repositorio de WP, alimentado por todos los usuarios que van haciendo pequeños desarrollos.
- Akismet: la mejor lucha contra el spam creada por el propio equipo de WP.
- Contact Form 7: para crear formularios personalizados en múltiples idiomas, con múltiples campos y diferentes validaciones. Por ejemplo, el de contacto.
- xlanguage: si queremos tener nuestro site en varios idiomas.
- All in One SEO Pack: para optimizar al máximo nuestro site frente a los buscadores. El complemento ideal es Google XML Sitemaps, que genera de forma automática nuestro sitemap cada vez que se publica algo nuevo.
- Si queremos que nuestros artículos puedan ser mandados de forma fácil a redes sociales como Facebook, twitter, menéame, etc… Sociable es nuestro plugin.
- Subscribe To Comments: para permitir a nuestros lectores recibir notificaciones vía correo cuando alguien deje comentarios en determinadas entradas.
- Members Only – Permite que el blog sólo sea accesible por usuarios registrados (tanto a posts como a la parte de administración).
- wpDirAuth: si queremos que los usuarios del site se validen contra un LDAP.
- Yet Another Related Posts: para obtener artículos relacionados con uno ya escrito en base a datos coincidentes como etiquetas, categorías o aparición de palabras en común.
- Para «corporativizar» WP, se puede incluir un logo en la pantalla de login y en la zona de administración.
- Para controlar la memoria empleada por WP: WP memory usage control.
5. Themes
En WordPress es sumamente sencillo cambiar la apariencia de nuestra página. Tenemos miles de plantillas para elegir, pero también podremos crear la nuestra. Además, desde el apartado de administración se podrá configurar la apariencia de una forma muy visual mediante widgets (en el apartado Apariencia –> Widgets). Aquí aparecen las barras laterales definidas y múltiples funcionalidades que se pueden colocar: comentarios recientes, posts recientes, buscador, una caja donde introducir nuestro propio código html, …
La estructura básica de un theme es la siguiente:
- header.php: aquí se define la cabecera de la página.
- footer.php: aquí se define el pie de página.
- sidebar.php: aquí se definen las diferentes barras laterales. Para que aparezcan en la sección de widgets para que puedan ser «alimentadas» desde el apartada de administración, hay que registrarlas en el fichero functions.php de la siguiente forma:
if ( function_exists(‘register_sidebars’) )
{
register_sidebar(array(
‘name’ => ‘Barra Lateral Derecha’,
‘before_widget’ => ‘código html que queremos que se cargue al inicio de la barra’,
‘after_widget’ => ‘código html que queremos que se cargue al final de la barra’,
‘before_title’ => ‘código html que queremos que se cargue al inicio del título de la barra’,
‘after_title’ => ‘código html que queremos que se cargue al final del título de la barra’,
));
register_sidebar(array(
‘name’ => ‘Barra Lateral Izquierda’,
‘before_widget’ => ‘código html que queremos que se cargue al inicio de la barra’,
‘after_widget’ => ‘código html que queremos que se cargue al final de la barra’,
‘before_title’ => ‘código html que queremos que se cargue al inicio del título de la barra’,
‘after_title’ => ‘código html que queremos que se cargue al final del título de la barra’,
));
}
- index.php: este es el fichero que carga de inicio del site. Desde aquí se invoca la carga de cabecera (get_header();), barras laterales (get_sidebar();) y footer (get_footer();).
- single.php: este es el fichero que se interpreta cuando se carga un post concreto.
- archive.php: igual que single.php pero para las páginas de categorías y etiquetas.
- functions.php: aquí se recogerán funciones propias del theme. Por ejemplo, si queremos registrar varias barras laterales para que aparezcan en la sección de widgets, indicar a WP dónde están los ficheros de idiomas, quitar filtros, …
- Templates: podemos crear plantillas con comportamientos propios a los que luego asignar a cada página. Desde el editor de páginas estáticas hay una opción para aplicar plantillas. Para que un fichero php sea interpretado por WP como una template, hay que incluir al inicio del mismo el siguiente código:
/*
Template Name: Nombre-plantilla
*/
- style.css: fichero con los estilos.
- 404.php: si creamos este fichero, cada vez que algo no se encuentre en el blog, se cargará esta página.
6. Otros
- Gestión de idiomas
- Cómo hacer backup de los datos:
Tanto en WordPress.com como en la versión instalada en nuestro servidor, la opción de exportar se encuentra en la sección de “Herramientas» de la columna lateral de configuración. Hay que pinchar en el botón “Descargar el archivo de exportación», lo que nos genera un archivo XML con todos los posts, comentarios, campos personalizados, categorías y etiquetas. Este fichero se puede utilizar para ser importado en otro sitio creado con WordPress. También se puede importar desde otras plataformas, como Blogger, Posterous, LiveJournal y Movable Type, entre otros.
7. Enlaces de interés
- Directorio de plugins
- Directorio de themes
- WordPress Codex, el rincón del programador de WP
Todo juntito y estructuradito en el wiki.
Escueto y bien explicado. Quizá a muchos les asuste la parte linux. Normalmente WP se puede instalar creando la base de datos y modificando config.php sin necesidad de configurar nada en el servidor. Si nos metemos en WP MU (multiusuario) y domain mapping, es otra historia, pero para la instalación de WP normal no es necesaria mucha configuración.
Cuidado con las actualizaciones: siempre copia de seguridad antes de hacerlas directamente desde tu panel de administración.
saludos
Muy buena explicacion! ojala todos los bloggeros explicaran tan bien…
Gracias por la info.
Dos plugins más:
WPML: otro plugin para gestión de multilenguaje… una maravilla: traducciones de cadenas, widgets….
Viper’s Video Quicktags: Quizás no tanto de cara al lector, pero para la gente que escribe este es un plugin imprescindible para embeber videos de los diferentes proveedores de servicio. Imprescindible a mi entender.
@PhoneSpace: muy buena recomendación la de los backups (siempre nos acordamos de ellos cuando ya es demasiado tarde). Siempre que se haga una actualización de versión, imprescindible hacer copia de los archivos y de la base de datos.
@MaY: lo mejor del Viper’s Video es ¡que te genera código html válido para los vídeos de YouTube, DailyMotion, etc…! (¿por qué no lo generarán ya así las propias plataformas?).
Muchas gracias por este gran post, para la gente que estamos empezando biene muy bien y para explicar a los que te preguntas de que va, que todavia hay mucha gente tambien.
Un post muy buen estructurado, en ningun mokento se me ha hecho pesado.
Especialmente he agradecido la diferencia entre wordpress.com y .org, sin saberlo empece con .org cuando vaya avanzando, mi blog actual es un experimento, probare con.com, si los recursos ,me lo permiten, os dejo algunas plantillas de wordpress.org http://wordpress.newsiana.com/tema-WordPress.org, seguro que viene bien a los que estan empezando.
saludos.
buena informacion gracias!!
gsmfrcmph, Genf20, ZRKwlDn, [url=http://www.genf20onreview.com/]Genf20 plus ok for teens[/url], YuLRLbF, http://www.genf20onreview.com/ Genf20, gEvQOhN.
Me parece que has hecho un excelente trabajo con el «mini-curso» porque de mini no tiene nada, es más que eso a mi parecer, gran trabajo.
Me ha ayudado mucho, casi me vuelvo loco buscando algo similar. Un abrazo!