Aunque sea difícil de creer, hay gente a la que le sienta fatal las vacaciones y para más inri, creo que estoy dentro de ese grupo. Tanto tiempo para pensar hace que me ponga “intensa” y cada vez que eso pasa, me temo. El resto del año voy como el conejo de Alicia en el país de las maravillas: con el reloj en la mano y gritando aquello de “llego tarde, llego tarde“.
En el instituto, mi profesor de filosofía me dejó una dedicatoria al final del curso que jamás se me olvidará y que, por ahora, ha marcado mi devenir: “Soy una trapera del tiempo“. Se puede decir más alto…
Y aunque estoy haciendo serios esfuerzos para gestionar mejor mi tiempo, ahora tengo miedo de que no sepa hacer frente a una sobreabundancia. Analizando cada minuto libre que hubiera podido invertir en pensar, poner mis ideas en orden y no quedarme en la superficialidad de las cosas, veo que me busco cualquier excusa para mantener mi cerebro ocupado en cosas más triviales: escuchar música, leer, contar coches rojos, … Y me temo que es una tendencia de esta sociedad. Vivimos corriendo porque nos da miedo asentar las ideas. Buscamos subterfugios para no hacerlo por miedo a replantearnos tantas y tantas cosas…
A la gente, cuando llega el final de año le da por hacer listas con balances y promesas. A mí me da por esto… qué se le va a hacer . Pronto dejaré de tener el tiempo suficiente para que estos pensamientos enturbien mi mente. La noria estará otra vez arriba.
El pasado miércoles estuve dando la enésima charla sobre identidad digital (si ya has visto alguna presentación mía, no aporto mucha novedad ) dentro de los Wednesday Meetings que organiza la Universidad de Deusto.
Aprovechándome del excelente resumen que ha hecho Cristina Fernández para el blog del Colegio Vasco de Economistas, yo me limito a contaros una de los apartados de la charla: llevar al absurdo nuestra participación en la Web. Y es que en ocasiones parece que si no trasponemos al mundo off-line las actitudes que tomamos en Internet, no se nos saltan los colores.
Seleccionando las mejores y más míticas frases de madre, iniciemos el análisis :
No hables con extraños. Te subes a un medio de transporte público y ves como se produce el “efecto aceite“: según van entrando las personas, se sientan lo más separas posible de las que ya están dentro. Sin embargo, en Internet nos lanzamos a hablar con cualquiera. Curioso, ¿no?
No abras la puerta a nadie (ni dejes las llaves de tu casa ). Qué poco apego tenemos a veces por las llaves digitales de nuestra identidad: las contraseñas. Siempre que en una charla pregunto cuántos de los asistentes tienen la misma contraseña para todos los servicios, más de la mitad levantan la mano (y estoy convencida que otro porcentaje alto no lo hace por vergüenza). Imaginaros ahora que yo soy una persona maligna que monta una red social sólo con el ánimo de recabar la dirección de correo y contraseña de los participantes… ¿Usarías la misma llave tanto para la taquilla del gimnasio como para tu casa? Curioso, ¿no?
Sé educado. Exceptuando recintos deportivos, es raro encontrarse con personas que insultan a todo aquel con el que se cruzan. Pues ahora pasaros por las noticias de cualquier medio digital. Los trolls allí se retroalimentan unos a otros. Curioso, ¿no?
Contesta cuando te pregunten. Si te hago una pregunta, aunque no conozcas la respuesta, lo normal es que me respondas, ¿no? ¿Y por qué tanta gente da la callada por respuesta en los blogs, el correo electrónico, las redes sociales, …? Curioso, ¿no?
No robes. Cuando estás en el supermercado, ¿se te pasa por la cabeza coger algo si no tiene precio? ¿Y por qué en Internet cuando tenemos que buscar una imagen nos lanzamos a Google Images para usarla luego sin saber quién es el dueño? Curioso, ¿no?
Pues cada día que pasa es menos curiosa la inmadurez que demostramos en algunas participaciones, signo inequívoco de que la Red aún no es un terreno en el que nos movamos con plena naturalidad y donde nos queda mucho por explorar y experimentar. Experimentemos entonces, pero poniendo un poco de cabeza de vez en cuando .
Y para finalizar este post, me viene que ni pintado el vídeo de Douglas Rushkoff presentando su libro Program or Be Programmed:
Tenía pendiente esta entrada desde hace tanto tiempo… (de hecho, me habían pedido la traducción de “7 Simple Ways To Say No” de Celestine Chua). Pero una conversación mantenida esta semana ha servido como catalizador del proceso .
Hablando con una persona a la que no conozco desde hace mucho, me ha sorprendido la radiografía tan exacta que ha sacado de mí. Me ha adjudicado el don de la asertividad pero con una carencia: no saber decir que NO. Es algo que tengo asumido… ¡pero que quiero cambiar! Hay días en los que es desesperante mirar tu correo electrónico. Muchas peticiones de ayuda, que estarías encantada de resolver, pero que requieren su tiempo, un bien que escasea precisamente por el círculo vicioso en el que me veo inmersa. En Aprendices hemos dicho (a veces medio en broma, a veces medio en serio) que tenemos que hacer un taller sobre esto.
Pudiera parecer que decir que sí a todo y a todos es positivo porque estamos contentando a las personas con las que nos relacionamos. Pero igual obtenemos el efecto contrario: frustración por terminar haciendo algo que realmente no queríamos hacer; no llegar a todo lo comprometido, sumando por tanto más frustración y ofreciendo una pésima imagen (y fallando a los que nos importan).
Las razones de esa parálisis a la hora de decir que NO pueden ser varias y las hay de todos los colores:
La culpabilidad, ese sentimiento traicionero que te golpea donde más duele: la conciencia. Simplemente quieres ayudar, pero no consideras que igual te estás haciendo a ti un flaco favor… Y esto se acentúa aún más en las mujeres por esa herencia cultural de debernos a los demás.
La incertidumbre de que si no aceptamos algo, no se nos presentarán futuras opciones (ya no nos volverán a llamar u ofrecer algo).
Querer agradar y el miedo a parecer una borde. Muchas veces he comentado con otros internautas que la red está plagada de un “buenrollismo” que en ocasiones es hasta agobiante. Nos damos jabón hasta límites insospechados… Nadie quiere asumir el rol del “vinagre” de Internet. Y más cuando en un medio escrito, las palabras quedan frías y las susceptibilidades están a flor de piel.
Que todo nos parezca atractivo. Entonces tenemos un grave problema de gestión de prioridades y una limitación inherente al ser humano: nuestros días, como los de los demás, tienen 24 horas (ni un minuto más, ni un minuto menos).
Si os sentís identificados con alguno de los puntos anteriormente expuestos, vosotros también sois unos “traperos del NO”. Así que hagamos juntos la terapia. Repetid conmigo:
“Me gustaría poder ayudarte, pero me resulta imposible”.
“No soy la persona más apropiada para esto. Si quieres, te puedo dar el nombre de…”.
“Ahora mismo no cuento con el tiempo suficiente para llevar a cabo eso y a mí me gusta comprometerme al 100%”.
Y sin duda, mi favorita, una frase mítica de Phoebe en la serie Friends:
“Me encantaría, pero no me apetece”.
Tras releer el post completo unas cuantas veces, me he dado cuenta que he usado un montón la palabra NO. ¿Será que ya estoy aprendiendo…?
Lo de los saraos es un no parar. Si por cada uno que se organizara, me dieran una cuenta premium de spotify, podría invitar a todo el barrio a escuchar música gratis . Chistes frikis y malos a parte, os cuento los que caerán este mes de mi cuenta:
Viernes, 12 de noviembre a las 11 de la mañana en la Cámara de Comercio (Alameda Rekalde, 50): mesa redonda “La innovación al servicio de los ciudadanos y las empresas” dentro de las jornadas Innovate Bilbao que organiza Telefónica. Aquí me pondré la gorra de la Universidad de Deusto para hablar del papel de la innovación dentro del sector educativo. Nos pasaremos después por el Elevator Pitch que se organiza en Ideateca.
Sábado, 20 de noviembre de 11:00 a 14:00 en la Escuela de Música “Andrés Isasi” de Las Arenas: “II Encuentro de Bloggers de Getxo… y alrededores” donde un grupo amplio de mujeres contaremos qué tratamos normalmente en nuestros blogs y cómo estos han cambiado en mayor o menor medida nuestras vidas.
En mi corta experiencia en el mundo de las bibliotecas una cosa me ha quedado ya clara: la supremacía de los grandes proveedores de contenidos y de paquetes de software. La mayoría de las suscripciones a recursos electrónicos vienen dados por grandes editoriales que ejercen el control, haciendo y deshaciendo a su antojo.
Y en el mundo de los sistemas integrados de gestión bibliotecaria, tres cuartos de lo mismo. Los paquetes más completos son, por supuesto, privativos y con unos costes bastante interesantes (por no decir otra cosa…). También hay excepciones. Pero recalco lo de excepciones (incluso lo pongo en negritas, por si no ha quedado suficientemente claro ). Así que os podréis imaginar la dependencia de esos mastodontes de cara a modernizar o incorporar funcionalidades actuales. Ellos marcan los ritmos, que por supuesto, son más lentos que la frenética celeridad de la tecnología hoy en día.
¿Y qué hacer ante esto? Pues como el propio título del post indica: si la Mahoma no va a la montaña, será la montaña la que acuda a ayudar a Mahoma . En la biblioteca de la Universidad de Deusto llevábamos un tiempo buscando la herramienta ideal para publicar las nuevas adquisiciones de una manera amigable para el usuario final. Y hemos optado por un WordPress como CMS aliñado con un plugin de desarrollo propio: http://nuevasadquisiciones.deusto.es
Diariamente se publican las novedades, siendo cada post una ficha de libro. En esa ficha cargamos la información básica que dependerá de lo que se pueda obtener de manera automática de Open Library y/o WorldCat mediante su API. La ficha ideal, es decir, todos los campos que se buscan son: título, autor/es, editorial, fecha de publicación, número de páginas, ISBN, signatura, número de copia (éste es un número interno de nuestro SIGB), idioma y resumen.
Con la portada sucede lo mismo: se busca en Open Library y en LibraryThing, y si está, se carga. Si no, se pone una por defecto (dado que otras plataformas no dejan cogerlas por problemas de derechos). Escribiré un post contando de manera pormenorizada esto mismo.
Además, se añade un enlace directo de ese libro en las siguientes webs/redes sociales de lectura: WorldCat, LibraryThing, Google Books y BookFinder. Y también ponemos un enlace directo del ejemplar al catálogo de la biblioteca.
Al hilo de Google Books, si ese libro está cargado allí y permite el ojeo, aparecerá el visor del mismo en la ficha, para que se pueda acceder al contenido directamente. Eso sí, llevamos ya más de 1.500 fichas de libros publicadas y aún no he visto ninguno que lo permita .
Cada ficha lleva como etiquetas el Campus en el que está y la materia a la que pertenece, para que los usuarios puedan luego suscribirse vía RSS a un Campus en concreto, si así lo desean, o a una materia, logrando un mejor filtrado.
Gracias a otros plugins de WordPress, obtenemos más funcionalidades:
WP-PostRatings: nos permitirá que los lectores voten los libros y así mostrar los más valorados por ellos.
AZIndex: nos permite generar los típicos listados AtoZ que tanto se estilan en las bibliotecas .
Comentarios + Subscribe To Comments: con esto tenemos la herramienta ideal para generar conversación alrededor de los ejemplares.
La información de las novedades se carga mediante un csv que tan sólo necesita los ISBNs de los libros. El resto de información, como he comentado anteriormente, se carga automáticamente a través de Open Library y WorldCat. También tocará un post hablando de lo importante que sería impulsar proyectos como Open Library.
Como veis, no es un OPAC… pero casi . Una pequeña ventana de escapatoria a los paquetes convencionales que nos da cierta libertad. De hecho, hay una palabra clave en todo esto: RSS. Con él podemos redirigir los contenidos a muchas otras plataformas. Por ejemplo, publicar de manera automática esos ejemplares en Twitter o Facebook mediante Twitterfeed. O lo más importante: permitir que el usuario se suscriba a las temáticas que le interesan, mejorando el filtrado y quitando ruidos innecesarios.
Ahora la pregunto que os lanzo es clara: ¿tiene interés que libere el plugin para que otros lo usen y enriquezcan?.
Tras este desarrollo, Javier Leiva me puso sobre la pista de Scriblio: un WPopac, es decir, un catálogo en línea gestionado mediante WordPress. Aún no he podido analizarlo a fondo, pero seguro que hay muchas cosas aprovechables para el nuevo sistema. Incluso en una segunda versión, sería interesante trabajar con los custom post types que ofrece WordPress 3.0 y así ofrecer un buscador más robusto por cada campo de las fichas. Veremos cómo discurre la cosa .
Llevo unas semanas de sequía escritora. No es que se me haya ido la musa de vacaciones (tengo un montón de posts en la nevera). Lo que se me ha ido es el tiempo: entre los agobios del trabajo, la mudanza de casa, las fiestas de Basauri, un viajecito a Holanda y demás zarandajas, tenía esto medio abandonado.
Sin embargo, hoy era un día de escritura obligada.
Llevo unos 6 años en Del.icio.us (Noviembre de 2004).
Pero la niña de mis ojos cumple hoy, nada más y nada menos que 5 añazos. Parece que fue ayer cuando empezamos esto como mera experimentación…
Y de regalo le he hecho un nuevo vestidito para que luzca mona cuando la saque de paseo por las calles de Internet. Un vestidito que valida xHMTL y CSS para que sus abuelos Tim y Robert se sientan orgullosos de la criatura. Más limpio y cambiando el azul que nos ha acompañado estos años por una paleta de grises. Sólo lo he revisado en firefox bajo ubuntu, así que si veis algo raro en otro navegador/plataforma, agradeceré el aviso .
¡Felicidades bitácora mía! Y que este post valga como pistoletazo de la reactivación.
Artículo publicado en la Revista Deusto Nº 108 (otoño 2010)
¿Dónde quedaron los años en los que nos escondíamos por mero placer o juego? Eso nos preguntamos algunas viendo lo que ahora se estila: mostrar en todo momento cuál es nuestra ubicación y qué hacemos. Una necesidad imperante de reafirmarnos haciendo públicas nuestras experiencias y diciendo aquello de “yo he estado aquí, yo he vivido esto”.
Así que no es de extrañar el éxito que están teniendo redes sociales como Foursquare en Estados Unidos. Éxito que se replica poco a poco por otras latitudes más cercanas. Esta plataforma junta dos de las tendencias en boga de la web: el poder de la ubicuidad que confieren los terminales móviles y el cultivo de la extimidad mediante la geolocalización, marcando nuestra situación física vía GPS. El invento busca que los usuarios dejen constancia de los sitios por los que transitan, añadiendo información de valor sobre estos para que sus contactos puedan informarse con posterioridad si se pasan por allí. Pongamos un ejemplo práctico: visitamos un bar nuevo en el que hacen unos batidos increíbles. Mientras disfrutamos de la bebida, sacamos nuestro teléfono móvil con GPS, nos conectamos a Foursquare y hacemos un “check-in” del sitio. De esta forma, nuestros amigos sabrán que hemos estado allí y que además hay unos batidos estupendos. Ahora bien, no siempre funciona como un instrumento de recomendación, sino más bien como una forma de simplemente comunicar dónde nos encontramos.
La idea no es nueva. De hecho, una de las primeras redes sociales virtuales que nacieron allá por el 2000, Dodgeball, ya buscaba eso. En el proyecto estaba implicado uno de los creadores de Foursquare: Dennis Crowley. Incluso el magnate de la Red, Google, vio su éxito y la compró en el 2005, convirtiéndola posteriormente en su servicio Latitude. Pero Foursquare ha encontrado la gallina de los huevos de oro: agregarle a todo esto el componente del juego. Cada vez que se marca un sitio, se ganan puntos e incluso medallas, pudiendo llegar a ser los “alcaldes virtuales” de un espacio si hemos pasado muchas veces por allí. Así pues, nuestro instinto competitivo se une al del exhibicionismo para encumbrar a la plataforma.
Como puntos fuertes destacan la variedad de aplicaciones existentes para interactuar desde nuestros terminales móviles, sea cual sea la marca y modelo (incluyendo la posibilidad de añadir información con un simple SMS) y que se integra con nuestras cuentas en Twitter y Facebook, mandando a éstas actualizaciones cada vez que introducimos un punto en Foursquare. De hecho, estas dos redes sociales también le han visto las ventajas a la geolocalización y la incluyen como servicio. Twitter ya localiza los mensajes de sus usuarios y Facebook lo tiene programado en sus próximos desarrollos. Sin embargo, su talón de Aquiles reside en la necesidad del uso de un terminal de última generación con su cara conexión de datos para interactuar con la plataforma. Algo que no está aún muy extendido aquí.
¿Y dónde está el modelo de negocio de esta red social? Aquí es muy claro: en los establecimientos y locales comerciales. Foursquare les ofrece estadísticas como el ratio de hombres y mujeres que les visitan, a qué horas, información en tiempo real sobre las personas que están allí, … Y también les da la posibilidad de lanzar campañas personalizadas. Empresas como Starbucks ofertan descuentos a los usuarios de Foursquare que se pasen asiduamente por sus cafeterías.
Sin embargo, también hay quien se mofa de esta nueva moda. Y si no que se lo digan a los creadores de la web Please Rob Me (Por favor, róbame), que muestra un listado de todas las casas que están vacías porque sus dueños así lo explicitan a través de las redes sociales.
A medio camino entre lo absurdo y lo útil, veremos si los usuarios terminamos adueñándonos de la herramienta para que sea más lo segundo. Porque el problema no está en la tecnología, sino en el uso que nosotros le damos.
Como es costumbre, aquí dejo el material usado en el cursillo del e-ghost+aprendices que he impartido esta semana sobre cómo convertir a nuestro WordPress en una página web y no tanto en un blog y cómo entender a fondo el funcionamiento de las plantillas.
La información está también recogida en el wiki que, por cierto, está de estreno. No porque esté descontenta con wikispaces… pero me gusta más tener mis datos bajo mi paraguas (manías de vieja ). Poco a poco iré migrando el resto de contenidos allí.
Internamente WordPress se compone de los siguientes ficheros y carpetas:
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 fichero 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.
plugins: todos los plugins que tenemos disponibles para el blog (aunque no estén activos).
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).
themes: todas las plantillas que tenemos disponibles para “vestir” al blog. Nosotros nos centraremos en esta carpeta.
Como podemos ver, una instalación de WordPress es muy portable. Si nos queremos cambiar de servidor o hosting, bastará con que nos llevemos estas carpetas y la Base de Datos exportada en un simple .sql. No requiere de otras configuraciones más complejas.
La estructura básica de un theme
Las plantillas o themes son la capa de presentación de los blogs o páginas web que se monten. Se puede cambiar esta capa sin que la información se vea afectada. WordPress reconoce automáticamente los siguientes ficheros y los interpreta:
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.
index.php: este es el fichero que carga de inicio el site. Desde aquí se invoca la carga de cabecera (get_header();), barras laterales (get_sidebar();) y footer (get_footer();) y en el cuerpo central, se ejecuta el bucle para cargar la información de los posts.
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.
category.php: plantilla para las categorías. Cuando un usuario pincha sobre el enlace de una categoría, WordPress prueba si existe el fichero category.php. Si no lo encuentra, carga archive.php. Y si éste tampoco lo encuentra, se va a por el index.php. Más adelante veremos un gráfico con la interpretación jerárquica que hace WordPress.
comments.php: plantilla de los comentarios.
searchform.php: formulario de búsqueda.
search.php: página donde se muestran los resultados de una búsqueda.
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, …
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.
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, …
También desde el apartado de administración (Ajustes –> Lectura) podemos configurar que la portada que se carga de nuestra web sea una página y no el formato blog de entradas, dándole más carácter de página web.
Sidebars
Podríamos cargar diferentes sidebars con la misma metodología que los headers y los footers (explicada más adelante), pero existe una manera para que generemos un espacio dentro del apartado de los widgets.
Para que aparezcan en la sección de widgets las diferentes sidebars que queramos “alimentar” desde el panel 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’,
));
}
Para usarlas posteriormente, la llamada será de la siguiente forma:
<?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar(‘Barra Lateral Izquierda’) ) :
echo “El usuario no ha puesto widgets en esta barra”;
endif; ?>
De esta forma tan sencilla podemos cargar ficheros php personalizados para mostrar diferentes footers o cabeceras según estemos en una categoría u otra. En el ejemplo, si estamos en la categoría de Cine se cargará footer-cine.php. Si no, se cargará footer.php.
Sería exactamente lo mismo para las cabeceras (header-cine.php vs. header.php):
Es decir, lo que WordPress busca es el fichero header-slug.php (el slug es el permalink. Es decir, la versión url del nombre: una cadena sin mayúsculas, sin tildes, con guiones en vez de espacios).
Categorías y etiquetas personalizadas
Para cargar diferentes presentaciones dependiendo de la categoría o la etiqueta sobre la que se pinche, podemos crear un php igual que lo hacíamos con las cabeceras, es decir category-slug.php o tag-slug.php o bien con el siguiente formato de nombre category-XX.php o tag-XX.php (donde XX es el id que tiene internamente esa categoría o etiqueta). De esta forma, podríamos ponerle una cabecera, un footer y un sidebar personalizados dependiendo de la categoría o la etiqueta en la que estemos.
Aquí vemos el orden en el que WordPress busca los ficheros y los carga:
Para cualquiera de las vistas que no tenga un archivo de plantilla separado, WordPress usará index.php de manera predeterminada. Si un visitante solicita un artículo individual, WordPress primero buscará un archivo llamado single.php. Si ese archivo existe, será utilizado para presentar el artículo. Si ese archivo no existe, WordPress utilizará index.php.
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 WordPress como una template, hay que incluir al inicio del mismo el siguiente código:
/*
Template Name: Nombre-plantilla
*/
The Loop
El bucle es el proceso más importante de WordPress, aquel que nos devuelve y recorre todos los posts que corresponden al fichero desde el que se invoca:
Si se le llama desde index.php, nos devuelve los últimos posts que se hayan escrito (tantos como tengamos definidos que deberían formar parte de la portada en el apartado de administración).
Si se le llama desde archive.php, nos devuelve los posts de una etiqueta determinada o de una categoría concreta (dependerá de quién haga la llamada a ese fichero).
Por tanto, es en este bucle donde procesaremos la colección de posts.
<?php
get_header();
if (have_posts()) :
while (have_posts()) : the_post();
the_content();
endwhile;
endif;
get_sidebar();
get_footer();
?>
wp_query->current_post: nos devuelve el número del post en el que estamos dentro del loop. Un ejemplo de uso en el que mostramos el contenido para los tres primeros posts y sólo el título para el resto:
<?php if (have_posts()) :
while (have_posts()) : the_post();
if ($wp_query->current_post < 3) {
the_content();
}
else {
the_title();
}
endwhile;
endif; ?>
Sin embargo, nosotros también podemos controlar qué posts nos devolverá ese loop mediante la función query_posts. Esa función regenera la consulta y filtra los posts en base a los parámetros que le pongamos:
cat=ID: filtra por esa categoría. Si al id se le pone un guión por delante, muestra los posts de todas las categorías menos de esa.
tag=slug: filtra por etiqueta. En esta ocasión se le pasa el slug. Si queremos usar el ID de la etiqueta, pondremos el parámetro tag_id.
author=ID: filtra por usuario, usando el ID del mismo.
order=ASC u order=DESC: indica la ordenación de los resultados, ascendente o descendente.
//The Loop
if ( have_posts() ) : while ( have_posts() ) : the_post();
..
endwhile; else:
..
endif;
//Reset Query
wp_reset_query(); ?>
Funciones
the_permalink(): nos dará la url del post que estemos tratando dentro del loop. No tiene parámetros. Con get_permalink() tendremos que mostrarlo nosotros por pantalla con un echo, pero nos permite que, si tenemos el ID del post y se lo pasamos por parámetro, lo usemos fuera del loop: get_permalink($post->ID).
the_title($before, $after, $echo): muestra el título del post y también es necesario usarlo dentro del loop. Los parámetros $after y $before nos permite introducir cadenas de texto que irán delante y detrás respectivamente. Por ejemplo, si queremos que el título vaya con las etiquetas html <h3>, podemos hacer la siguiente llamada: the_title(‘<h3>’, ‘</h3>’). El parámetro $echo nos sirve para indicar si queremos que muestre el título por pantalla (si lo ponemos a true) o no para hacer algún tratamiento con ese título (si lo ponemos a false). Con get_the_title(ID) sucede igual que get_permalink pero para el título del post.
the_excerpt(): muestra lo que hayamos introducido en el campo Extracto. Se usa dentro del loop. Tiene su versión get_the_excerpt().
<?php if(!empty($post->post_excerpt)) {
// Si tiene extracto, lo muestra
the_excerpt();
} else {
// Si no, muestra el contenido del post
the_content();
} ?>
the_time(): muestra la fecha por cada post. Le podemos pasar por parámetro el formato de esa fecha:
l = Nombre completo del día de la semana.
F = Nombre completo para el mes.
j = Día numérico.
m = Mes con dos dígitos.
Y = Año con cuatro dígitos.
y = Año con dos dígitos.
Para escapar letras, usaremos la barra \. Por ejemplo, para poner la palabra “de” le pasaremos “\d\e”
the_author(): muestra por pantalla el autor que ha escrito ese post. Tiene su versión sin echo: get_the_author.
the_tags( $before, $separator, $after): muestra las etiquetas asociadas a ese post. Por parámetro se le puede pasar el texto que precederá a las etiquetas, los caracteres que queremos que separen las etiquetas y el texto que irá al final. Tiene también su versión get_the_tags que nos devolverá un array con las etiquetas, para que las procesemos nosotros.
<?php the_tags(‘Etiquetas:’, ‘ – ‘, ‘<br />’); ?>
posts_nav_link: muestra un enlace con el texto que le pasemos por parámetro a los posts que estén en páginas anteriores. Se usa en el index.php para que se pueda navegar a los contenidos anteriores a los posts que se muestran en la portada.
previous_posts_link: muestra un enlace con el texto que le pasemos por parámetro a los posts que estén en páginas anteriores. Se usa en el index.php para que se pueda navegar a los contenidos anteriores a los posts que se muestran en la portada.
next_posts_link: muestra un enlace con el texto que le pasemos por parámetro a los posts que estén en páginas posteriores. Se usa en el index.php para que se pueda navegar a los contenidos posteriores a los posts que se muestran en la página desde la que se invoca.
in_category($category): nos dice si ese post está en la categoría pasada por parámetro. Se puede pasar el ID de la categoría o bien el slug. Con esto también podemos hacer que tenga comportamientos distintos según la categoría y en un único fichero category.php.
Cuando estamos creando un post, justo debajo de la caja del texto podemos introducir campos personalizados introduciendo un nombre y un valor:
El Nombre será el identificador de nuestro campo personalizado y el Valor lo que queremos mostrar. Obtendremos el valor de ese campo dentro del loop con la siguiente llamada get_post_custom_values:
Estos custom fields son los metadatos extra de cada post (que se suman a los ya típicos autor, fecha, etiquetas, categorías, etc…). Así podría ser la canción que está escuchando el autor cuando escribió el post o su estado de ánimo, el precio (si usamos el blog como tienda virtual), etc…
Panel de administración del theme
Para crear un apartado de administración de nuestro theme, debemos incluir la siguiente llamada en functions.php (en este ejemplo estamos poniendo un textarea para que se almacene nuestro código de Google Analytics):
/* Meter código de Google Analytics */
function nombredeltheme_theme() {
if(isset($_POST['submitted']) and $_POST['submitted'] == ‘yes’) :
update_option(“google_analytics”, stripslashes($_POST['google_analytics']));
endif;
?>
<form method=”post” name=”update_form” target=”_self”>
<h1>Google Analytics</h1>
<table>
<tr>
<th>Google Analytics:</th>
<td><textarea name=”google_analytics” style=”width: 95%;” rows=”10″ />
<?php echo get_option(‘google_analytics’); ?></textarea><br />Copia el código Google Analytics aquí.</td>
</tr>
</table>
<p id=”jump_submit”>
<input name=”submitted” type=”hidden” value=”yes” />
<input type=”submit” name=”Submit” value=”Save Changes” />
</form>
<?php
}
function nombredeltheme_options() {
add_menu_page(‘Opciones del Theme’, __(‘Opciones del Theme’, ‘default’), ‘edit_themes’, __FILE__, ‘nombredeltheme_theme’);
}
add_action(‘admin_menu’, ‘nombredeltheme_options’);
Luego ponemos en el footer.php:
<?php echo get_option(‘google_analytics’); ?>
De esta forma se cargará en el footer lo que el usuario alimente desde el panel de administración.
Londres tiene numerosas zonas verdes, algunas de ellas de gran tamaño como Hyde Park o Regent’s Park, que pertenecen en su mayoría a la Corona Británica. Una forma ideal de escapar del bullicio del centro y, si hace buen tiempo, tumbarse a tomar un poco el sol o hacer un buen picnic.
Hyde Park es el más grande y conocido. Sus esquinas son también célebres. Por ejemplo, tenemos el Speakers’ Corner, donde los oradores se ponen a disertar. Justo al lado está el Marble Arch, lo que iba a ser la puerta del Palacio de Buckingham, pero fue trasladado aquí porque los carruajes no cogían por él. Actualmente tiene escondida una comisaría en su interior. El domingo es el día clave para visitar el lago Serpentine, el Memorial de Diana de Gales, el Memorial del Holocausto y ver a los londinenses practicando deporte o tomando sol en las hamacas que se colocan. Justo al lado tenemos los Kensington Gardens.
Sin duda, el parque que más me gustó fue Regent’s Park. Es como un oasis en medio del asfalto. Un lugar por el que pasear y no encontrarte por algunos tramos con ni un alma (algo que se agradece si has tenido que cruzar Oxford Street, por ejemplo). Además, tiene una zona que parece casi una jungla, con pequeños puentes, mini-cataratas,… además del Zoo de Londres. Si seguimos subiendo hacia el norte, tenemos Primrose Hill, una pequeña colina desde la que se tienen unas vistas envidiables de la ciudad. Es una zona tan relajada que hasta famosos como Chris Martin y Gwyneth Paltrow viven por allí. Los domingos es muy común ver a los londinenses con una cestita de mimbre, una botella de champán y unas copitas de cristal, organizar un buen picnic mientras ven como atardece. Alrededor del parque tenemos el Regent’s Canal, un canal que cruza casi toda la ciudad (de hecho, lo veréis también en Camden), que antiguamente su usaba para mover mercancías con barcos arrastrados por caballos. Ahora, los únicos barcos que quedan son mini-viviendas y podremos encontrar hasta un restaurante chino flotante. No muy lejos de este parque también está la famosa Baker Street que tanto describió sir Arthur Conan Doyle y, si sois muy fans de Sherlock Holmes, aquí encontraréis su museo.
Como ya comentaba en mi paseo por The Mall, a su lado tenemos dos zonas verdes: St James’s Park y Green Park. Desde su tranquilo lago tendremos una perspectiva interesante del Palacio de Buckingham. También se estila aquí la colocación de hamacas para que la gente tome el escaso sol que hace.
Highgate cuenta con un parque, pero lo más atractivo, por raro que resulte, es su cementerio. Este campo santo victoriano tiene un halo misterioso y romántico. Y además es lugar de peregrinación de muchos porque allí se encuentran los restos del pensador comunista Karl Marx, el filósofo Herbert Spencer, el novelista George Eliot o el científico Michael Faraday.
Londres es la ciudad de los mercados. Hay uno para cada día de la semana.
El sábado tenemos Portobello Market en el mismísimo corazón de Nothing Hill, un barrio precioso de obligado paseo. A lo largo y ancho de Portobello Road, con sus casitas victorianas de colores, encontraremos miles de puestos y tiendas que venden antigüedades, arte, comida, ropa, … Una recomedación: ir prontito, porque luego se llena de gente.
El domingo nos podríamos acercar a Spitalfields Market y a Brick Lane Market en la zona del East End. Spitafields es un mercado más “formal” con mucho material hecho a mano, pero Brick Lane es un lugar por el que es imprescindible pasar si vas a Londres. La calle que da nombre al mercado es de lo más underground que te puedas encontrar. Probablemente te sientas fuera de lugar por lo “normal” que eres. Moda vintage y de segunda mano se junta con este ambiente caótico, multicultural (se ha convertido en el barrio bengalí) y que rezuma arte por todos sus poros: street art a tutiplén con vistosos graffitis, múltiples Space Invaders, galerías y espacios de trabajo, bares muy peculiares para tomarte algo (con tomateras como adorno, por ejemplo), … La Old Truman Brewery es una antigua fábrica de cerveza que actualmente da cobijo a diseñadores de moda, artistas, fotógrafos, galerías de arte y bares. Justo delante tiene una plaza donde os encontraréis sitios tan curiosos como el restaurante vegano Rootmaster.
Para el lunes hemos dejado otro plato fuerte: Camden Town. Ya no es tan underground como fuera antaño (ahora es más turistero) pero sigue teniendo mucho encanto, con múltiples tiendas con sus fachadas decoradas con aviones, gatos, botas, … Se divide en cinco zonas: Stables (antiguos establos reformados), Camden Lock, Camden Canal, Camden Market e Inverness Street. Artesanía, electrónica, ropa, pintura y gente de todo tipo. Aunque suene raro, hay que visitar los baños de Stables. Están decorados por graffitis impresionantes. Y también Cyberdog: una tienda futurista cyberpunk, con música electrónica a todo trapo, luces de neón y una enorme pista de baile a la que saltan los dependientes de vez en cuando.
¿Y qué tal si el martes nos vamos a Covent Garden? Éste, más que un mercado, es un distrito completo. Medio cubierto, medio al aire libre (con la Piazza), podemos comprar alimentos, bisutería, ropa o ver un buen espectáculo improvisado en la calle. También podremos echar un vistazo al Royal Opera House.
Si sois unos amantes del buen comer y de los alimentos de primer nivel, Borough Market es vuestro lugar en Southwark. Gente de muchas partes del mundo se acerca a Londres sólo para comprar aquí café.
Ya sólo queda un capítulo para que os deje de dar la brasa .