<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>El Blog de Loretahur &#187; Web</title>
	<atom:link href="http://blog.loretahur.net/category/web/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.loretahur.net</link>
	<description></description>
	<lastBuildDate>Tue, 24 Jan 2012 21:21:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Vistiendo a WordPress: nunca los themes fueron tan fáciles</title>
		<link>http://blog.loretahur.net/2010/09/vistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html</link>
		<comments>http://blog.loretahur.net/2010/09/vistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html#comments</comments>
		<pubDate>Tue, 14 Sep 2010 20:56:41 +0000</pubDate>
		<dc:creator>Lorena Fernández</dc:creator>
				<category><![CDATA[Aprendices]]></category>
		<category><![CDATA[E-ghost]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[codex]]></category>
		<category><![CDATA[custom types]]></category>
		<category><![CDATA[plantillas]]></category>
		<category><![CDATA[templates]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.loretahur.net/?p=3007</guid>
		<description><![CDATA[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, [...]]]></description>
			<content:encoded><![CDATA[<p>Como es costumbre, aquí dejo el material usado en el cursillo del <a href="http://www.e-ghost.deusto.es/">e-ghost</a>+<a href="http://aprendices.wikispaces.com/">aprendices</a> 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.</p>
<p>La información está también recogida en el <a href="http://wiki.loretahur.net">wiki</a> que, por cierto, está de estreno. No porque esté descontenta con wikispaces&#8230; pero me gusta más tener mis datos bajo mi paraguas (manías de vieja <img src='http://blog.loretahur.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ). Poco a poco iré migrando el resto de contenidos allí.</p>
<div id="__ss_5201576" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="Vistiendo a WordPress" href="http://www.slideshare.net/loretahur/vistiendo-a-wordpress">Vistiendo a WordPress</a></strong><object id="__sse5201576" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=vistiendoawordpress-100914154845-phpapp01&amp;stripped_title=vistiendo-a-wordpress" /><param name="name" value="__sse5201576" /><param name="allowfullscreen" value="true" /><embed id="__sse5201576" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=vistiendoawordpress-100914154845-phpapp01&amp;stripped_title=vistiendo-a-wordpress" name="__sse5201576" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">Más presentaciones de <a href="http://www.slideshare.net/loretahur">Lorena Fernández</a>.</div>
</div>
<ul>
<li><a href="#La_estructura_de_WordPress">1 La estructura de WordPress</a></li>
<li><a href="#La_estructura_b.C3.A1sica_de_un_theme">2 La estructura básica de un theme</a></li>
<li><a href="#Sidebars">3 Sidebars</a></li>
<li><a href="#Cabeceras_y_Footers_personalizados">4 Cabeceras y Footers personalizados</a></li>
<li><a href="#Categor.C3.ADas_y_etiquetas_personalizadas">5 Categorías y etiquetas personalizadas</a></li>
<li><a href="#Templates">6 Templates</a></li>
<li><a href="#The_Loop">7 The Loop</a></li>
<li><a href="#Funciones">8 Funciones</a></li>
<li><a href="#Custom_fields_-_Campos_personalizados">9 Custom fields &#8211; Campos personalizados</a></li>
<li><a href="#Panel_de_administraci.C3.B3n_del_theme">10 Panel de administración del theme</a></li>
<li><a href="#Enlaces_de_inter.C3.A9s">11 Enlaces de interés</a></li>
</ul>
<h2 id="La_estructura_de_WordPress">La estructura de WordPress</h2>
<p>Internamente WordPress se compone de los siguientes ficheros y carpetas:</p>
<ul>
<li><strong>wp-config.php</strong>: 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.</li>
<li><strong>wp-admin</strong> y <strong>wp-includes</strong>: carpetas que guardan los ficheros php que hacen que funcione el blog. Ambas carpetas se machacan con las actualizaciones</li>
<li><strong>wp-content</strong>: 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:
<ul>
<li><strong>uploads</strong>: 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.</li>
<li><strong>plugins</strong>: todos los plugins que tenemos disponibles para el blog (aunque no estén activos).</li>
<li><strong>languages</strong>: 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 (&#8216;WPLANG&#8217;, &#8216;es_ES&#8217;); donde es_ES es el nombre del fichero .mo  (tienen que coincidir en nombre).</li>
<li><strong>themes</strong>: todas las plantillas que tenemos disponibles para &#8220;vestir&#8221; al blog. Nosotros nos centraremos en esta carpeta.</li>
</ul>
</li>
</ul>
<p>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.</p>
<h2 id="La_estructura_b.C3.A1sica_de_un_theme">La estructura básica de un theme</h2>
<p>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:</p>
<div><a href="http://wiki.loretahur.net/index.php/Archivo:Cuerpo.jpg"><img class="alignright" src="http://wiki.loretahur.net/images/1/1f/Cuerpo.jpg" alt="Cuerpo.jpg" width="200" height="223" /></a></div>
<ul>
<li><strong>header.php</strong>: aquí se define la cabecera de la página.</li>
<li><strong>footer.php</strong>: aquí se define el pie de página.</li>
<li><strong>sidebar.php</strong>: aquí se definen las diferentes barras laterales.</li>
<li><strong>index.php</strong>: este es el fichero que carga de inicio el site. Desde aquí se invoca la carga de cabecera (<em>get_header();</em>), barras laterales (<em>get_sidebar();</em>) y footer (<em>get_footer();</em>) y en el cuerpo central, se ejecuta el bucle para cargar la información de los posts.</li>
<li><strong>single.php</strong>: este es el fichero que se interpreta cuando se carga un post concreto.</li>
<li><strong>archive.php</strong>: igual que single.php pero para las páginas de categorías y etiquetas.</li>
<li><strong>category.php</strong>: plantilla para las categorías. Cuando un  usuario pincha sobre el enlace de una categoría, WordPress prueba si  existe el fichero <em>category.php</em>. Si no lo encuentra, carga <em>archive.php</em>. Y si éste tampoco lo encuentra, se va a por el <em>index.php</em>. Más adelante veremos un gráfico con la interpretación jerárquica que hace WordPress.</li>
<li><strong>comments.php</strong>: plantilla de los comentarios.</li>
<li><strong>searchform.php</strong>: formulario de búsqueda.</li>
<li><strong>search.php</strong>: página donde se muestran los resultados de una búsqueda.</li>
<li><strong>functions.php</strong>: 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, &#8230;</li>
<li><strong>style.css</strong>: fichero con los estilos.</li>
<li><strong>404.php</strong>: si creamos este fichero, cada vez que algo no se encuentre en el blog, se cargará esta página.</li>
</ul>
<p>Desde el apartado de administración se podrá configurar la apariencia  de una forma muy visual mediante widgets (en el apartado Apariencia  &#8211;&gt; 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, &#8230;</p>
<p>También desde el apartado de administración (Ajustes &#8211;&gt;  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.</p>
<h2 id="Sidebars">Sidebars</h2>
<p>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 <em>widgets</em>.</p>
<p>Para que aparezcan en la sección de widgets las diferentes  sidebars que queramos &#8220;alimentar&#8221; desde el panel de administración, hay  que registrarlas en el fichero functions.php de la siguiente forma:</p>
<blockquote><p>if ( function_exists(&#8216;register_sidebars&#8217;) )<br />
{<br />
register_sidebar(array(<br />
&#8216;name&#8217; =&gt; &#8216;Barra Lateral Derecha&#8217;,<br />
&#8216;before_widget&#8217; =&gt; &#8216;código html que queremos que se cargue al inicio de la barra&#8217;,<br />
&#8216;after_widget&#8217; =&gt; &#8216;código html que queremos que se cargue al final de la barra&#8217;,<br />
&#8216;before_title&#8217; =&gt; &#8216;código html que queremos que se cargue al inicio del título de la barra&#8217;,<br />
&#8216;after_title&#8217; =&gt; &#8216;código html que queremos que se cargue al final del título de la barra&#8217;,<br />
));<br />
register_sidebar(array(<br />
&#8216;name&#8217; =&gt; &#8216;Barra Lateral Izquierda&#8217;,<br />
&#8216;before_widget&#8217; =&gt; &#8216;código html que queremos que se cargue al inicio de la barra&#8217;,<br />
&#8216;after_widget&#8217; =&gt; &#8216;código html que queremos que se cargue al final de la barra&#8217;,<br />
&#8216;before_title&#8217; =&gt; &#8216;código html que queremos que se cargue al inicio del título de la barra&#8217;,<br />
&#8216;after_title&#8217; =&gt; &#8216;código html que queremos que se cargue al final del título de la barra&#8217;,<br />
));<br />
}</p></blockquote>
<p>Para usarlas posteriormente, la llamada será de la siguiente forma:</p>
<blockquote><p>&lt;?php if ( !function_exists(&#8216;dynamic_sidebar&#8217;) || !dynamic_sidebar(&#8216;Barra Lateral Izquierda&#8217;) ) :<br />
echo &#8220;El usuario no ha puesto widgets en esta barra&#8221;;<br />
endif; ?&gt;</p></blockquote>
<h2 id="Cabeceras_y_Footers_personalizados">Cabeceras y Footers personalizados</h2>
<blockquote><p>&lt;?php if (is_category(&#8216;Cine&#8217;)) {<br />
get_footer(&#8216;Cine&#8217;);<br />
} else {<br />
get_footer();<br />
} ?&gt;</p></blockquote>
<p>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 <em>Cine</em> se cargará <em>footer-cine.php</em>. Si no, se cargará <em>footer.php</em>.</p>
<p>Sería exactamente lo mismo para las cabeceras (<em>header-cine.php</em> vs. <em>header.php</em>):</p>
<blockquote><p>&lt;?php if (is_category(&#8216;cine&#8217;)) {<br />
get_header(&#8216;cine&#8217;);<br />
} else {<br />
get_header();<br />
} ?&gt;</p></blockquote>
<p>Es decir, lo que WordPress busca es el fichero <em>header-slug.php</em> (el <strong>slug</strong> es el permalink. Es decir, la versión url del nombre: una cadena sin mayúsculas, sin tildes, con guiones en vez de espacios).</p>
<h2 id="Categor.C3.ADas_y_etiquetas_personalizadas">Categorías y etiquetas personalizadas</h2>
<p>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 <em>category-slug.php</em> o <em>tag-slug.php</em> o bien con el siguiente formato de nombre <em>category-XX.php</em> o <em>tag-XX.php</em> (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.</p>
<p>Aquí vemos el orden en el que WordPress busca los ficheros y los carga:</p>
<p><a href="http://blog.loretahur.net/wp-content/uploads/2010/09/Template_Hierarchy.png"><img class="aligncenter size-medium wp-image-3017" title="WP Template Hierarchy" src="http://blog.loretahur.net/wp-content/uploads/2010/09/Template_Hierarchy-300x136.png" alt="" width="300" height="136" /></a></p>
<p>Para cualquiera de las vistas que no tenga un archivo de plantilla separado, WordPress usará <em>index.php</em> de manera predeterminada. Si un visitante solicita un artículo individual, WordPress primero buscará un archivo llamado <em>single.php</em>. Si ese archivo existe, será utilizado para presentar el artículo. Si ese archivo no existe, WordPress utilizará <em>index.php</em>.</p>
<h2 id="Templates">Templates</h2>
<p>Podemos crear plantillas con comportamientos propios a los que luego asignar a cada <strong>página</strong>.  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:</p>
<blockquote><p>/*<br />
Template Name: Nombre-plantilla<br />
*/</p></blockquote>
<h2 id="The_Loop">The Loop</h2>
<p>El <a rel="nofollow" href="http://codex.wordpress.org/es:The_Loop_in_Action">bucle</a> 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:</p>
<ul>
<li> Si se le llama desde <em>index.php</em>, 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).</li>
<li> Si se le llama desde <em>archive.php</em>, nos devuelve los  posts de una etiqueta determinada o de una categoría concreta (dependerá  de quién haga la llamada a ese fichero).</li>
</ul>
<p>Por tanto, es en este bucle donde procesaremos la colección de posts.</p>
<blockquote><p>&lt;?php<br />
get_header();<br />
if (have_posts()) :<br />
while (have_posts()) : the_post();<br />
the_content();<br />
endwhile;<br />
endif;<br />
get_sidebar();<br />
get_footer();<br />
?&gt;</p></blockquote>
<ul>
<li> <strong>wp_query-&gt;current_post</strong>: 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:</li>
</ul>
<blockquote><p>&lt;?php if (have_posts()) :<br />
while (have_posts()) : the_post();<br />
if ($wp_query-&gt;current_post &lt; 3) {<br />
the_content();<br />
}<br />
else {<br />
the_title();<br />
}<br />
endwhile;<br />
endif; ?&gt;</p></blockquote>
<p>Sin embargo, nosotros también podemos controlar qué posts nos devolverá ese loop mediante la función <a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/query_posts">query_posts</a>. Esa función regenera la consulta y filtra los posts en base a los parámetros que le pongamos:</p>
<ul>
<li><strong>cat=ID</strong>: 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.</li>
<li><strong>tag=slug</strong>: 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.</li>
<li><strong>author=ID</strong>: filtra por usuario, usando el ID del mismo.</li>
<li><strong>order=ASC</strong> u <strong>order=DESC</strong>: indica la ordenación de los resultados, ascendente o descendente.</li>
<li><strong>year=año</strong>: filtra por año.</li>
<li><strong>monthnum=mes</strong>: filtra por mes.</li>
<li><strong>day=día</strong>: filtra por día.</li>
<li><strong>posts_per_page=número</strong>: número de posts por página</li>
</ul>
<p>Ejemplo:</p>
<blockquote><p>&lt;?php<br />
query_posts(&#8216;posts_per_page=5&amp;author=3&amp;tag=discos&#8217;);</p>
<p>//The Loop<br />
if ( have_posts() ) : while ( have_posts() ) : the_post();<br />
..<br />
endwhile; else:<br />
..<br />
endif;</p>
<p>//Reset Query<br />
wp_reset_query(); ?&gt;</p></blockquote>
<h2 id="Funciones">Funciones</h2>
<ul>
<li><a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/the_permalink">the_permalink()</a>: nos dará la url del post que estemos tratando dentro del loop. No tiene parámetros. Con <a rel="nofollow" href="http://codex.wordpress.org/Template_Tags/get_permalink">get_permalink()</a> 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: <em>get_permalink($post-&gt;ID)</em>.</li>
<li><a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/the_title">the_title($before, $after, $echo)</a>:  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 &lt;h3&gt;, podemos  hacer la siguiente llamada: the_title(&#8216;&lt;h3&gt;&#8217;, &#8216;&lt;/h3&gt;&#8217;). El  parámetro $echo nos sirve para indicar si queremos que muestre el título  por pantalla (si lo ponemos a <em>true</em>) o no para hacer algún tratamiento con ese título (si lo ponemos a <em>false</em>). Con <a rel="nofollow" href="http://codex.wordpress.org/Template_Tags/get_the_title">get_the_title(ID)</a> sucede igual que get_permalink pero para el título del post.</li>
<li><a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/the_content">the_content()</a>: muestra el cuerpo del post.Se usa dentro del loop. Tiene también su versión <a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/get_the_content">get_the_content()</a>.</li>
<li><a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/the_excerpt">the_excerpt()</a>: muestra lo que hayamos introducido en el campo Extracto. Se usa dentro del loop. Tiene su versión <a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/get_the_excerpt">get_the_excerpt()</a>.</li>
</ul>
<blockquote><p>&lt;?php if(!empty($post-&gt;post_excerpt)) {<br />
// Si tiene extracto, lo muestra<br />
the_excerpt();<br />
} else {<br />
// Si no, muestra el contenido del post<br />
the_content();<br />
} ?&gt;</p></blockquote>
<ul>
<li><a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/the_time">the_time()</a>: muestra la fecha por cada post. Le podemos pasar por parámetro el <a rel="nofollow" href="http://codex.wordpress.org/Formatting_Date_and_Time">formato</a> de esa fecha:
<ul>
<li>l = Nombre completo del día de la semana.</li>
<li>F = Nombre completo para el mes.</li>
<li>j = Día numérico.</li>
<li>m = Mes con dos dígitos.</li>
<li>Y = Año con cuatro dígitos.</li>
<li>y = Año con dos dígitos.</li>
<li>Para escapar letras, usaremos la barra \. Por ejemplo, para poner la palabra &#8220;de&#8221; le pasaremos &#8220;\d\e&#8221;</li>
</ul>
</li>
</ul>
<blockquote><p>&lt;?php the_time(&#8216;l, j \d\e F, Y&#8217;); //Nos muestra Martes, 14 de Septiembre, 2010 ?&gt;</p></blockquote>
<ul>
<li><a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/the_date">the_date()</a>: igual que the_time pero muestra la fecha solo en el primer post de un grupo que haya sido publicado el mismo día.</li>
<li><a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/bloginfo">Bloginfo</a>: nos ofrece numerosa información de nuestro blog que luego podremos plasmar en otros apartados (tiene se versión <a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/get_bloginfo">get_bloginfo</a>):
<ul>
<li>bloginfo(&#8216;name&#8217;): muestra por pantalla el nombre del blog.</li>
<li>bloginfo(&#8216;description&#8217;): muestra por pantalla el nombre del blog.</li>
<li>bloginfo(&#8216;url&#8217;): muestra por pantalla la dirección del blog.</li>
<li>bloginfo(&#8216;stylesheet_url&#8217;): muestra por pantalla la ruta del fichero de estilos (style.css).</li>
<li>bloginfo(&#8216;template_url&#8217;): muestra por pantalla la ruta del theme.</li>
<li>bloginfo(&#8216;rss2_url&#8217;): muestra por pantalla la ruta del RSS.</li>
</ul>
</li>
</ul>
<p>En este ejemplo se muestra el nombre del blog enlazado a su dirección:</p>
<blockquote><p>&lt;a href=&#8221;&lt;?php bloginfo(&#8216;url&#8217;); ?&gt;&#8221; title=&#8221;&lt;?php bloginfo(&#8216;name&#8217;); ?&gt;&#8221;&gt;&lt;?php bloginfo(&#8216;name&#8217;); ?&gt;&lt;/a&gt;</p></blockquote>
<ul>
<li> <a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/the_author">the_author()</a>: muestra por pantalla el autor que ha escrito ese post. Tiene su versión sin echo: <a rel="nofollow" href="http://codex.wordpress.org/Template_Tags/get_the_author">get_the_author</a>.</li>
<li> <a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/the_tags">the_tags( $before, $separator, $after)</a>:  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 <a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/get_the_tags">get_the_tags</a> que nos devolverá un array con las etiquetas, para que las procesemos nosotros.</li>
</ul>
<blockquote><p>&lt;?php the_tags(&#8216;Etiquetas:&#8217;, &#8216; &#8211; &#8216;, &#8216;&lt;br /&gt;&#8217;); ?&gt;</p></blockquote>
<ul>
<li> <a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/posts_nav_link">posts_nav_link</a>:  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.</li>
<li> <a rel="nofollow" href="http://codex.wordpress.org/Template_Tags/previous_posts_link">previous_posts_link</a>:  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.</li>
<li> <a rel="nofollow" href="http://codex.wordpress.org/Template_Tags/next_posts_link">next_posts_link</a>:  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.</li>
</ul>
<blockquote><p>&lt;div&gt;<br />
&lt;div&gt;&lt;?php previous_posts_link(&#8221;,&#8221;,&#8217;&amp;laquo; Artículos Anteriores&#8217;)?&gt;&lt;/div&gt;<br />
&lt;div&gt;&lt;?php next_posts_link(&#8221;,&#8217;Artículos Siguientes &amp;raquo;&#8217;,&#8221;)?&gt;&lt;/div&gt;<br />
&lt;/div&gt;</p></blockquote>
<ul>
<li> <a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/in_category">in_category($category)</a>:  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.</li>
</ul>
<blockquote><p>&lt;?php if (in_category(&#8217;3&#8242;) ){ ?&gt;<br />
&lt;img src=&#8217;/images/plant.png&#8217; alt=&#8217;a plant&#8217; /&gt;<br />
&lt;?php } elseif (in_category(&#8217;4&#8242;) ){ ?&gt;<br />
&lt;img src=&#8217;/images/flower.png&#8217; alt=&#8217;a pretty flower&#8217; /&gt;<br />
&lt;?php } ?&gt;</p></blockquote>
<h2 id="Custom_fields_-_Campos_personalizados">Custom fields &#8211; Campos personalizados</h2>
<p>Cuando estamos creando un post, justo debajo de la caja del texto podemos introducir <a rel="nofollow" href="http://codex.wordpress.org/Custom_Fields">campos personalizados</a> introduciendo un nombre y un valor:</p>
<p><a href="http://blog.loretahur.net/wp-content/uploads/2010/09/campos-personalizados.jpg"><img class="aligncenter size-medium wp-image-3019" title="campos-personalizados" src="http://blog.loretahur.net/wp-content/uploads/2010/09/campos-personalizados-300x145.jpg" alt="" width="300" height="145" /></a></p>
<p>El <strong>Nombre</strong> será el identificador de nuestro campo personalizado y el <strong>Valor</strong> lo que queremos mostrar. Obtendremos el valor de ese campo dentro del loop con la siguiente llamada <a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/get_post_custom_values">get_post_custom_values</a>:</p>
<blockquote><p>&lt;?php $valor_custom_field = get_post_custom_values(&#8220;nombre-del-custom-field&#8221;); ?&gt;</p></blockquote>
<p>O también con la función <a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/get_post_meta">get_post_meta</a>:</p>
<blockquote><p>&lt;?php $valor_custom_field = get_post_meta($post-&gt;ID, nombre-del-custom-field); ?&gt;</p></blockquote>
<p>Estos custom fields son los metadatos extra de cada post (que se suman a  los ya típicos autor, fecha, etiquetas, categorías, etc&#8230;). 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&#8230;</p>
<h2 id="Panel_de_administraci.C3.B3n_del_theme">Panel de administración del theme</h2>
<p>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):</p>
<blockquote><p>/* Meter código de Google Analytics */<br />
function nombredeltheme_theme() {<br />
if(isset($_POST['submitted']) and $_POST['submitted'] == &#8216;yes&#8217;) :<br />
update_option(&#8220;google_analytics&#8221;, stripslashes($_POST['google_analytics']));<br />
endif;<br />
?&gt;<br />
&lt;form method=&#8221;post&#8221; name=&#8221;update_form&#8221; target=&#8221;_self&#8221;&gt;<br />
&lt;h1&gt;Google Analytics&lt;/h1&gt;<br />
&lt;table&gt;<br />
&lt;tr&gt;<br />
&lt;th&gt;Google Analytics:&lt;/th&gt;<br />
&lt;td&gt;&lt;textarea name=&#8221;google_analytics&#8221; style=&#8221;width: 95%;&#8221; rows=&#8221;10&#8243; /&gt;<br />
&lt;?php echo get_option(&#8216;google_analytics&#8217;); ?&gt;&lt;/textarea&gt;&lt;br /&gt;Copia el código Google Analytics aquí.&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;p id=&#8221;jump_submit&#8221;&gt;<br />
&lt;input name=&#8221;submitted&#8221; type=&#8221;hidden&#8221; value=&#8221;yes&#8221; /&gt;<br />
&lt;input type=&#8221;submit&#8221; name=&#8221;Submit&#8221; value=&#8221;Save Changes&#8221; /&gt;<br />
&lt;/form&gt;<br />
&lt;?php<br />
}<br />
function nombredeltheme_options() {<br />
add_menu_page(&#8216;Opciones del Theme&#8217;, __(&#8216;Opciones del Theme&#8217;, &#8216;default&#8217;), &#8216;edit_themes&#8217;, __FILE__, &#8216;nombredeltheme_theme&#8217;);<br />
}<br />
add_action(&#8216;admin_menu&#8217;, &#8216;nombredeltheme_options&#8217;);</p></blockquote>
<p>Luego ponemos en el footer.php:</p>
<blockquote><p>&lt;?php echo get_option(&#8216;google_analytics&#8217;); ?&gt;</p></blockquote>
<p>De esta forma se cargará en el footer lo que el usuario alimente desde el panel de administración.</p>
<h2 id="Enlaces_de_inter.C3.A9s">Enlaces de interés</h2>
<ul>
<li>Nuestra nueva biblia: <a rel="nofollow" href="http://codex.wordpress.org/">Codex WordPress</a>.</li>
<li>El gran <a rel="nofollow" href="http://wordpress.org/extend/themes/">repositorio</a> de WordPress de plantillas, para que seleccionemos una como base para la modificación.</li>
</ul>




	<a rel="nofollow"  href="mailto:?subject=Vistiendo%20a%20WordPress%3A%20nunca%20los%20themes%20fueron%20tan%20f%C3%A1ciles&amp;body=http%3A%2F%2Fblog.loretahur.net%2F2010%2F09%2Fvistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html" title="email"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.loretahur.net%2F2010%2F09%2Fvistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html&amp;title=Vistiendo%20a%20WordPress%3A%20nunca%20los%20themes%20fueron%20tan%20f%C3%A1ciles&amp;notes=Como%20es%20costumbre%2C%20aqu%C3%AD%20dejo%20el%20material%20usado%20en%20el%20cursillo%20del%20e-ghost%2Baprendices%20que%20he%20impartido%20esta%20semana%20sobre%20c%C3%B3mo%20convertir%20a%20nuestro%20WordPress%20en%20una%20p%C3%A1gina%20web%20y%20no%20tanto%20en%20un%20blog%20y%20c%C3%B3mo%20entender%20a%20fondo%20el%20funcionamiento%20de%20las%20pl" title="del.icio.us"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.loretahur.net%2F2010%2F09%2Fvistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html&amp;t=Vistiendo%20a%20WordPress%3A%20nunca%20los%20themes%20fueron%20tan%20f%C3%A1ciles" title="Facebook"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.loretahur.net%2F2010%2F09%2Fvistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html&amp;title=Vistiendo%20a%20WordPress%3A%20nunca%20los%20themes%20fueron%20tan%20f%C3%A1ciles&amp;annotation=Como%20es%20costumbre%2C%20aqu%C3%AD%20dejo%20el%20material%20usado%20en%20el%20cursillo%20del%20e-ghost%2Baprendices%20que%20he%20impartido%20esta%20semana%20sobre%20c%C3%B3mo%20convertir%20a%20nuestro%20WordPress%20en%20una%20p%C3%A1gina%20web%20y%20no%20tanto%20en%20un%20blog%20y%20c%C3%B3mo%20entender%20a%20fondo%20el%20funcionamiento%20de%20las%20pl" title="Google Bookmarks"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://barrapunto.com/submit.pl?subj=Vistiendo%20a%20WordPress%3A%20nunca%20los%20themes%20fueron%20tan%20f%C3%A1ciles&amp;story=http%3A%2F%2Fblog.loretahur.net%2F2010%2F09%2Fvistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html" title="BarraPunto"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.loretahur.net%2F2010%2F09%2Fvistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html&amp;title=Vistiendo%20a%20WordPress%3A%20nunca%20los%20themes%20fueron%20tan%20f%C3%A1ciles&amp;source=El+Blog+de+Loretahur+&amp;summary=Como%20es%20costumbre%2C%20aqu%C3%AD%20dejo%20el%20material%20usado%20en%20el%20cursillo%20del%20e-ghost%2Baprendices%20que%20he%20impartido%20esta%20semana%20sobre%20c%C3%B3mo%20convertir%20a%20nuestro%20WordPress%20en%20una%20p%C3%A1gina%20web%20y%20no%20tanto%20en%20un%20blog%20y%20c%C3%B3mo%20entender%20a%20fondo%20el%20funcionamiento%20de%20las%20pl" title="LinkedIn"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.loretahur.net%2F2010%2F09%2Fvistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html" title="Technorati"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.loretahur.net%2F2010%2F09%2Fvistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html" title="Bitacoras.com"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.loretahur.net%2F2010%2F09%2Fvistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html" title="Wikio"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.friendfeed.com/share?title=Vistiendo%20a%20WordPress%3A%20nunca%20los%20themes%20fueron%20tan%20f%C3%A1ciles&amp;link=http%3A%2F%2Fblog.loretahur.net%2F2010%2F09%2Fvistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html" title="FriendFeed"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.loretahur.net%2F2010%2F09%2Fvistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html" title="Identi.ca"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Vistiendo%20a%20WordPress%3A%20nunca%20los%20themes%20fueron%20tan%20f%C3%A1ciles%20-%20http%3A%2F%2Fblog.loretahur.net%2F2010%2F09%2Fvistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html" title="Twitter"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.loretahur.net/2010/09/vistiendo-a-wordpress-nunca-los-themes-fueron-tan-faciles.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Amarillismo</title>
		<link>http://blog.loretahur.net/2010/03/amarillismo.html</link>
		<comments>http://blog.loretahur.net/2010/03/amarillismo.html#comments</comments>
		<pubDate>Wed, 31 Mar 2010 20:59:10 +0000</pubDate>
		<dc:creator>Lorena Fernández</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[amarillismo]]></category>
		<category><![CDATA[elcorreodigital]]></category>
		<category><![CDATA[periodismo]]></category>
		<category><![CDATA[piratería]]></category>

		<guid isPermaLink="false">http://blog.loretahur.net/?p=2613</guid>
		<description><![CDATA[Amarillismo, según la RAE: 1. m. Tendencia a producir sensación, emoción o impresión, con noticias, sucesos, etc. Empiezo ya a estar un poquito harta del trato que se le da a determinados temas de Internet en los medios de comunicación tradicionales&#8230; Para más inri, si ese medio de comunicación decide en su versión digital sacar [...]]]></description>
			<content:encoded><![CDATA[<p>Amarillismo, según la <a href="http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&#038;LEMA=amarillismo">RAE</a>:</p>
<blockquote><p>1.  m. Tendencia a producir sensación, emoción o impresión, con noticias, sucesos, etc.</p></blockquote>
<p>Empiezo ya a estar un poquito harta del trato que se le da a determinados temas de Internet en los medios de comunicación tradicionales&#8230; Para más inri, si ese medio de comunicación decide en su versión digital sacar en portada este titular: &#8220;<strong>Masiva campaña de demandas contra usuarios de redes P2P</strong>&#8220;:</p>
<p><a href="http://blog.loretahur.net/wp-content/uploads/2010/03/portada.jpg"><img src="http://blog.loretahur.net/wp-content/uploads/2010/03/portada-300x109.jpg" alt="" title="portada" width="300" height="109" class="aligncenter size-medium wp-image-2614" /></a></p>
<p>Para pinchar sobre el enlace y llegar a esta <a href="http://www.elcorreo.com/vizcaya/rc/20100331/tecnologia/masiva-campana-demandas-contra-201003310904.html">noticia</a>. ¿Notan algo que acompaña ahora al titular que antes no estaba?</p>
<p><a href="http://blog.loretahur.net/wp-content/uploads/2010/03/detalle.jpg"><img src="http://blog.loretahur.net/wp-content/uploads/2010/03/detalle-300x169.jpg" alt="" title="detalle" width="300" height="169" class="aligncenter size-medium wp-image-2615" /></a></p>
<p>Y la imagen con su pie es de traca (<em>Los piratas informáticos, en el punto de mira</em>). </p>
<p>Ahora es cuando me pregunto yo: ¿qué hace que un periódico prepare esto?</p>
<ol>
<li>Atraer visitas hacia un titular sensacionalista.</li>
<li>Una mano negra manejada por lobbies culturales que intenta amedrentar a la ciudadanía.</li>
<li>Mala (in)formación de los periodistas.</li>
</ol>
<p>Como bien me decía hoy un buen amigo, si se preparan así los sucesos de Internet, ¿qué nos estarán metiendo en economía, los conflictos políticos de otros países, &#8230;? Y que nadie me venga con la típica excusa vacacional (useasé, los becarios).</p>




	<a rel="nofollow"  href="mailto:?subject=Amarillismo&amp;body=http%3A%2F%2Fblog.loretahur.net%2F2010%2F03%2Famarillismo.html" title="email"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.loretahur.net%2F2010%2F03%2Famarillismo.html&amp;title=Amarillismo&amp;notes=Amarillismo%2C%20seg%C3%BAn%20la%20RAE%3A%0D%0A1.%20%20m.%20Tendencia%20a%20producir%20sensaci%C3%B3n%2C%20emoci%C3%B3n%20o%20impresi%C3%B3n%2C%20con%20noticias%2C%20sucesos%2C%20etc.%0D%0A%0D%0AEmpiezo%20ya%20a%20estar%20un%20poquito%20harta%20del%20trato%20que%20se%20le%20da%20a%20determinados%20temas%20de%20Internet%20en%20los%20medios%20de%20comunicaci%C3%B3n%20trad" title="del.icio.us"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.loretahur.net%2F2010%2F03%2Famarillismo.html&amp;t=Amarillismo" title="Facebook"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.loretahur.net%2F2010%2F03%2Famarillismo.html&amp;title=Amarillismo&amp;annotation=Amarillismo%2C%20seg%C3%BAn%20la%20RAE%3A%0D%0A1.%20%20m.%20Tendencia%20a%20producir%20sensaci%C3%B3n%2C%20emoci%C3%B3n%20o%20impresi%C3%B3n%2C%20con%20noticias%2C%20sucesos%2C%20etc.%0D%0A%0D%0AEmpiezo%20ya%20a%20estar%20un%20poquito%20harta%20del%20trato%20que%20se%20le%20da%20a%20determinados%20temas%20de%20Internet%20en%20los%20medios%20de%20comunicaci%C3%B3n%20trad" title="Google Bookmarks"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://barrapunto.com/submit.pl?subj=Amarillismo&amp;story=http%3A%2F%2Fblog.loretahur.net%2F2010%2F03%2Famarillismo.html" title="BarraPunto"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.loretahur.net%2F2010%2F03%2Famarillismo.html&amp;title=Amarillismo&amp;source=El+Blog+de+Loretahur+&amp;summary=Amarillismo%2C%20seg%C3%BAn%20la%20RAE%3A%0D%0A1.%20%20m.%20Tendencia%20a%20producir%20sensaci%C3%B3n%2C%20emoci%C3%B3n%20o%20impresi%C3%B3n%2C%20con%20noticias%2C%20sucesos%2C%20etc.%0D%0A%0D%0AEmpiezo%20ya%20a%20estar%20un%20poquito%20harta%20del%20trato%20que%20se%20le%20da%20a%20determinados%20temas%20de%20Internet%20en%20los%20medios%20de%20comunicaci%C3%B3n%20trad" title="LinkedIn"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.loretahur.net%2F2010%2F03%2Famarillismo.html" title="Technorati"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.loretahur.net%2F2010%2F03%2Famarillismo.html" title="Bitacoras.com"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.loretahur.net%2F2010%2F03%2Famarillismo.html" title="Wikio"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.friendfeed.com/share?title=Amarillismo&amp;link=http%3A%2F%2Fblog.loretahur.net%2F2010%2F03%2Famarillismo.html" title="FriendFeed"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.loretahur.net%2F2010%2F03%2Famarillismo.html" title="Identi.ca"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Amarillismo%20-%20http%3A%2F%2Fblog.loretahur.net%2F2010%2F03%2Famarillismo.html" title="Twitter"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.loretahur.net/2010/03/amarillismo.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Acelerando, que es gerundio</title>
		<link>http://blog.loretahur.net/2010/02/acelerando-que-es-gerundio.html</link>
		<comments>http://blog.loretahur.net/2010/02/acelerando-que-es-gerundio.html#comments</comments>
		<pubDate>Mon, 01 Feb 2010 21:58:38 +0000</pubDate>
		<dc:creator>Lorena Fernández</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[caché]]></category>
		<category><![CDATA[Clean CSS]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[CSS compressor]]></category>
		<category><![CDATA[CSS sprites]]></category>
		<category><![CDATA[defer]]></category>
		<category><![CDATA[deflate]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[gif]]></category>
		<category><![CDATA[GIFsicle]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jpegtran]]></category>
		<category><![CDATA[jpg]]></category>
		<category><![CDATA[jsmin]]></category>
		<category><![CDATA[page speed]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[pngcrush]]></category>
		<category><![CDATA[YUI Compressor]]></category>

		<guid isPermaLink="false">http://blog.loretahur.net/?p=2388</guid>
		<description><![CDATA[La semana pasada estuvimos por el Search Congress aprendiendo un poco de ese peculiar mundo que es el del SEO (por cierto, el congreso un poco flojo&#8230;). Y si algo me quedó claro es que, en un futuro próximo, cuando Google estrene su nuevo algoritmo (Google Caffeine), el tiempo de carga de nuestras páginas, blogs, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/orbita52/1257470363/"><img src="http://blog.loretahur.net/wp-content/uploads/2010/02/velocidad.jpg" alt="" title="velocidad" width="240" height="180" class="alignleft size-full wp-image-2389" /></a>La semana pasada estuvimos por el <a href="http://www.search-congress.com/bilbao/">Search Congress</a> aprendiendo un poco de ese peculiar mundo que es el del SEO (por cierto, el congreso un poco flojo&#8230;). Y si algo me quedó claro es que, en un futuro próximo, cuando Google estrene su nuevo algoritmo (<a href="http://mashable.com/2009/08/10/google-caffeine/">Google Caffeine</a>), el tiempo de carga de nuestras páginas, blogs, etc&#8230; tomará un protagonismo estelar. Así que afiné mucho las orejas para anotar formas de optimizarlas. La mayoría de trucos los obtuve del workshop que más me gustó: el de <a href="http://javiercasares.com/blog/presentacion-de-infraestructura-seo-del-search-congress/">Javier Casares</a>. Son pequeños tips que van rascando milisegundos. Pero pasito a pasito se hacen grandes recortes. </p>
<p>Empecemos con herramientas para poder monitorizar cuál es el estado de nuestra página web. Si usas firefox, dos son tus plugins: <a href="https://addons.mozilla.org/es-ES/firefox/addon/1843">firebug</a> + <a href="http://code.google.com/intl/es/speed/page-speed/">page speed</a>. Con firebug, en la pestaña de red podemos comprobar cuánto tarda nuestra web en cargar, qué elementos se piden y en qué secuencia, si tenemos algún fichero que no está bien enlazado, etc&#8230; Y page speed es un complemento para firebug que nos hace un diagnóstico, indicando consejos a seguir.</p>
<p>Aquí os paso unos cuantos:</p>
<ul>
<li>Sacar todos los estilos y javascripts a un único css y un único js. Y es que por cada fichero que incluimos, el navegador web tiene que hacer una petición. Esa petición tiene un consumo de tiempo y ancho de banda, así que contra menos ficheros tengamos, mejor. Se recomienda cargar los estilos en el head y los javascripts que no tengan document.write, en el footer y con el atributo <a href="http://www.websiteoptimization.com/speed/tweak/defer/">defer</a>.</li>
<li>Cuando tengamos un único css y un único js, lo mejor es reducir el tamaño de ambos. Para ello tenemos dos utilidades muy interesantes: <a href="http://www.crockford.com/javascript/jsmin.html">jsmin</a> o <a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a> para los javascripts, que pone todo el código en una única línea, reduciendo el tamaño del fichero considerablemente, pero poniendo difícil la posterior edición y revisión del código; <a href="http://www.cleancss.com/">Clean CSS</a> o <a href="http://iceyboard.no-ip.org/projects/css_compressor">CSS compressor</a> hace lo mismo para los estilos.</li>
<li>Además de esta reducción de tamaño, hay que habilitar gzip y deflate para comprimir toda la web que se le pasa al cliente. Esto carga la parte servidor porque tiene que hacer la compresión correspondiente por cada petición, pero aligerará mucho al cliente, que recibe menos contenido.</li>
<li>Hay que comprobar que no enlazamos a ningún fichero que ya no existe. Esto lo podemos revisar con el firebug. Si algún elemento nos devuelve un 404, esto suele retrasar bastante la carga.</li>
<li>Podemos bajar el tamaño de nuestras imágenes sin bajar su calidad. Dependiendo del tipo de fichero, tenemos varias utilidades que se lanzan desde línea de comandos:
<ul>
<li><strong>PNG</strong>: con <a href="http://pmt.sourceforge.net/pngcrush/">pngcrush</a>. El uso es el siguiente:<br />
<blockquote><p>pngcrush original.png optimizada.png</p></blockquote>
<p>Si queremos optimizar todos los png&#8217;s de nuestro theme, podemos crear una carpeta <em>optimizadas</em> y lanzar el siguiente conjuro:<br />
<blockquote>for X in *.png; do pngcrush -brute &#8220;$X&#8221; optimizadas/$X; done</p></blockquote>
</li>
<li><strong>JPG</strong>: con <a href="http://linux.about.com/library/cmd/blcmdl1_jpegtran.htm">jpegtran</a>. El uso es:<br />
<blockquote><p>jpegtran -copy none -optimize -perfect original.jpg>optimizada.jpg</p></blockquote>
<p>El conjuro para aplicarlo a todos los jpg&#8217;s:<br />
<blockquote>for X in *.jpg; do jpegtran -copy none -optimize -perfect $X > optimizadas/$X; done</p></blockquote>
</li>
<li><strong>GIFs animados</strong>: con <a href="http://www.lcdf.org/gifsicle/">GIFsicle</a>.</li>
</ul>
</li>
<li>Si usamos imágenes, lo ideal es poner su ancho y alto en la etiqueta img para que el navegador no tenga que calcularlo.</li>
<li>Si usamos varias imágenes fijas, lo mejor es cargarlas en un único fichero y colocarlas luego con CSS sprites. Por ejemplo, Google lo hace en su página de resultados. Carga todo en una <a href="http://www.google.com/images/nav_logo7.png">imagen</a> y luego usa cada uno de los elementos mediante coordenadas. Así se evita un montón de peticiones.</li>
<li>Con los contenidos estáticos, jugar mucho con la fecha de expiración de la caché (<em>Never expire</em>). De esta forma, el navegador del usuario cacheará los elementos y no los pedirá en posteriores navegaciones. Para los contenidos dinámicos, usar una cabecera <em>Cache-Control</em> apropiada.</li>
<li>Si tenemos la posibilidad de subir los contenidos estáticos a un dominio diferente del que sirve nuestra página y que no mande cookies por cada elemento, ahorraremos también ancho de banda y tiempo. Además se podrá &#8220;paralelizar&#8221; la descarga de elementos.</li>
</ul>
<p>Se dijo por allí que un tiempo razonable de carga es de menos de 2 segundos, así que me temo que muchas nos tendremos que poner las pilas <img src='http://blog.loretahur.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  .</p>
<p>&raquo; Interesante enlace de <a href="http://developer.yahoo.com/performance/rules.html">buenas prácticas</a> para acelerar la carga de páginas webs.</p>
<p><em>Imagen de Carlos Aguilera (CC by-nd)</em></p>




	<a rel="nofollow"  href="mailto:?subject=Acelerando%2C%20que%20es%20gerundio&amp;body=http%3A%2F%2Fblog.loretahur.net%2F2010%2F02%2Facelerando-que-es-gerundio.html" title="email"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.loretahur.net%2F2010%2F02%2Facelerando-que-es-gerundio.html&amp;title=Acelerando%2C%20que%20es%20gerundio&amp;notes=La%20semana%20pasada%20estuvimos%20por%20el%20Search%20Congress%20aprendiendo%20un%20poco%20de%20ese%20peculiar%20mundo%20que%20es%20el%20del%20SEO%20%28por%20cierto%2C%20el%20congreso%20un%20poco%20flojo...%29.%20Y%20si%20algo%20me%20qued%C3%B3%20claro%20es%20que%2C%20en%20un%20futuro%20pr%C3%B3ximo%2C%20cuando%20Google%20estrene%20su%20nuevo%20algoritm" title="del.icio.us"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.loretahur.net%2F2010%2F02%2Facelerando-que-es-gerundio.html&amp;t=Acelerando%2C%20que%20es%20gerundio" title="Facebook"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.loretahur.net%2F2010%2F02%2Facelerando-que-es-gerundio.html&amp;title=Acelerando%2C%20que%20es%20gerundio&amp;annotation=La%20semana%20pasada%20estuvimos%20por%20el%20Search%20Congress%20aprendiendo%20un%20poco%20de%20ese%20peculiar%20mundo%20que%20es%20el%20del%20SEO%20%28por%20cierto%2C%20el%20congreso%20un%20poco%20flojo...%29.%20Y%20si%20algo%20me%20qued%C3%B3%20claro%20es%20que%2C%20en%20un%20futuro%20pr%C3%B3ximo%2C%20cuando%20Google%20estrene%20su%20nuevo%20algoritm" title="Google Bookmarks"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://barrapunto.com/submit.pl?subj=Acelerando%2C%20que%20es%20gerundio&amp;story=http%3A%2F%2Fblog.loretahur.net%2F2010%2F02%2Facelerando-que-es-gerundio.html" title="BarraPunto"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.loretahur.net%2F2010%2F02%2Facelerando-que-es-gerundio.html&amp;title=Acelerando%2C%20que%20es%20gerundio&amp;source=El+Blog+de+Loretahur+&amp;summary=La%20semana%20pasada%20estuvimos%20por%20el%20Search%20Congress%20aprendiendo%20un%20poco%20de%20ese%20peculiar%20mundo%20que%20es%20el%20del%20SEO%20%28por%20cierto%2C%20el%20congreso%20un%20poco%20flojo...%29.%20Y%20si%20algo%20me%20qued%C3%B3%20claro%20es%20que%2C%20en%20un%20futuro%20pr%C3%B3ximo%2C%20cuando%20Google%20estrene%20su%20nuevo%20algoritm" title="LinkedIn"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.loretahur.net%2F2010%2F02%2Facelerando-que-es-gerundio.html" title="Technorati"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.loretahur.net%2F2010%2F02%2Facelerando-que-es-gerundio.html" title="Bitacoras.com"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.loretahur.net%2F2010%2F02%2Facelerando-que-es-gerundio.html" title="Wikio"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.friendfeed.com/share?title=Acelerando%2C%20que%20es%20gerundio&amp;link=http%3A%2F%2Fblog.loretahur.net%2F2010%2F02%2Facelerando-que-es-gerundio.html" title="FriendFeed"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.loretahur.net%2F2010%2F02%2Facelerando-que-es-gerundio.html" title="Identi.ca"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Acelerando%2C%20que%20es%20gerundio%20-%20http%3A%2F%2Fblog.loretahur.net%2F2010%2F02%2Facelerando-que-es-gerundio.html" title="Twitter"><img src="http://blog.loretahur.net/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.loretahur.net/2010/02/acelerando-que-es-gerundio.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

