<?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>TodoWordPress &#187; Programación</title>
	<atom:link href="http://www.todowp.org/categoria/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.todowp.org</link>
	<description>Tu portal de recursos de WordPress</description>
	<lastBuildDate>Fri, 06 Jan 2012 19:07:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel='hub' href='http://www.todowp.org/?pushpress=hub'/>
		<item>
		<title>Tags para los Custom Post Types</title>
		<link>http://www.todowp.org/tags-para-los-custom-post-types/</link>
		<comments>http://www.todowp.org/tags-para-los-custom-post-types/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 19:00:06 +0000</pubDate>
		<dc:creator>Víctor Edier</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Custom Post Types]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Entradas]]></category>
		<category><![CDATA[plantillas]]></category>
		<category><![CDATA[Tags]]></category>
		<category><![CDATA[taxonomia]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=4058</guid>
		<description><![CDATA[Ya existe mucha documentación sobre cómo crear taxonomías y cómo usarlas en los custom post types, pero&#8230; ¿cómo usar las taxonomías que usa WordPress por defecto? A esta pregunta no existe mucha documentación, y menos en español. Por esto, he decidido volver a escribir en TodoWP y hacer un pequeño manual de cómo usar específicamente [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" src="http://uploads.todowp.org/2012/01/nube.png" alt="nube de tags" width="520" height="315" /></p>
<p>Ya existe mucha documentación sobre cómo crear taxonomías y cómo usarlas en los <em>custom post types</em>, pero&#8230; ¿cómo usar las taxonomías que usa WordPress por defecto? A esta pregunta no existe mucha documentación, y menos en español. Por esto, he decidido volver a escribir en TodoWP y hacer un pequeño manual de cómo usar específicamente <strong>tags</strong> en un tipo de post personalizado.<br />
<span id="more-4058"></span><br />
Los ingredientes para lograrlo son:</p>
<ol>
<li>La definición o declaración del <em>post type</em></li>
<li>La conexión del tipo de post con la taxonomía</li>
<li>El cambio en el query por defecto</li>
</ol>
<p>Lo primero es tener el custom post type:<br />
<code><br />
register_post_type('alojamiento',<br />
array(<br />
'labels' =&gt; array(<br />
'name' =&gt; 'Alojamientos',<br />
'singular_name' =&gt; 'Alojamiento'<br />
),<br />
'capability_type' =&gt; 'post',<br />
'public' =&gt; true,<br />
'supports' =&gt; array('title','editor'),<br />
'taxonomies' =&gt; array('post_tag')<br />
)<br />
);<br />
</code><br />
Este es un ejemplo básico de cómo se registra un <em>post type</em>, lo importante en este ejemplo es la linea donde se registran las posibles taxonomías para este tipo.<br />
<code><br />
'taxonomies' =&gt; array('post_tag')<br />
</code><br />
Nota: en esta parte no es necesario poner todas las taxonomías que se usarían. Luego se pueden crear taxonomías personalizadas para usarlas con este tipo de post.</p>
<p style="text-align: center"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" src="http://uploads.todowp.org/2012/01/tags.png" alt="tags" width="297" height="164" /></p>
<p>Hasta el momento aun no ponemos usarla, ¿por qué? Porque el editor no nos mostrará la caja que permite agregar las etiquetas. Para esto nuestro segundo ingrediente.</p>
<p><code><br />
register_taxonomy_for_object_type('post_tag', 'alojamiento');<br />
</code></p>
<p>Esta última linea se coloca también en la acción <em>init</em>, al igual que el <em>register_post_type</em>. Hasta el momento todo funciona perfecto, podemos crear <em>custom post</em> y asignarles etiquetas. Incluso si agregamos un widget con la nube de etiquetas aparecerán las que hayamos creado y nos indicará cuántos posts tienen esa etiqueta.</p>
<p>Pero aún hay un problema: si en esa nube de etiquetas entramos a ver el listado de posts no veremos los de tipo especial, incluso aparecerán los posts normales, pero no los especiales.</p>
<p>Para esto nuestro tercer ingrediente. El problema radica en que el <em>query</em> que internamente tiene WordPress en el momento de solicitar los contenidos que se pasan a la plantilla para ser mostrados no incluye los<em> post types</em>.</p>
<p><code><br />
function agregar_los_custom_posts($query)<br />
{<br />
if(is_tag() &amp;&amp; empty($query-&gt;query_vars['suppress_filters']))<br />
{<br />
$post_types = array('post', 'alojamiento');<br />
$query-&gt;set('post_type', $post_types);<br />
return $query;<br />
}<br />
}<br />
add_filter( 'pre_get_posts', 'agregar_los_custom_posts' );<br />
</code></p>
<p>Este filtro logra agregar nuestro o nuestros tipos al <em>query</em> en caso necesario.</p>
<p>Espero que esto les ayude cuando estén en sus desarrollos. Comenten sus resultados. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/tags-para-los-custom-post-types/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Listar categorías con sus últimos artículos en la sidebar</title>
		<link>http://www.todowp.org/listar-categorias-con-sus-ultimos-articulos-en-la-sidebar/</link>
		<comments>http://www.todowp.org/listar-categorias-con-sus-ultimos-articulos-en-la-sidebar/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 18:00:03 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Categorías]]></category>
		<category><![CDATA[Functions.php]]></category>
		<category><![CDATA[Listar Artículos]]></category>
		<category><![CDATA[Sidebar.php]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3579</guid>
		<description><![CDATA[Si necesitamos disponer en algún apartado de nuestro site de una lista de categorías, que en cada una de ellas muestre títulos de sus artículos, aquí tenemos el código. A pesar de que a veces es más rápido escribir directamente en los templates (sidebar.php por ejemplo), el hecho de hacerlo programáticamente será una ventaja para [...]]]></description>
			<content:encoded><![CDATA[<p>Si necesitamos disponer en algún apartado de nuestro site de una lista de categorías, que en cada una de ellas muestre títulos de sus artículos, aquí tenemos el código.</p>
<p>A pesar de que a veces es más rápido escribir directamente en los templates (sidebar.php por ejemplo), el hecho de hacerlo programáticamente será una ventaja para dirigir los eventuales cambios en las categorías desde la administración.</p>
<p><span id="more-3579"></span></p>
<p>Además del código que aquí os proponemos, una serie de <em>loops</em> personalizados con <a href="http://codex.wordpress.org/Template_Tags/get_posts">get_posts</a> también podría dar el mismo resultado, pero todavía tendríamos que escribir las categorías directamente en el template para encabezar cada <em>loop</em> o bien encontrar una forma de repartirlas dinámicamente.</p>
<p>Es por eso que nos puede convenir usar el código siguiente. Lo tendremos que pegar en nuestro functions.php.</p>
<p><a href="http://paragraphe.org/todowordpress/articulos-como-submenu-de-categorias.txt">Copiar y pegar</a></p>
<p>No olvidemos que el código debe ser colocado al final de todo de functions.php, independiente de lo demás. Si nuestro tema de WordPress no dispone de un functions.php, lo podremos crear con un editor de texto como <a href="http://notepad-plus.sourceforge.net/uk/site.htm">Notepad++</a>, muy adecuado para crear archivos y editarlos.</p>
<p>Para terminar abriremos sidebar.php y, orientándonos entre cada &#8220;div&#8221; y relacionándolas con cada elemento que luego es mostrado en la web, escogeremos el lugar donde queremos escribir la llamada a esa nueva función que acabamos de añadir a nuestro tema.</p>
<p>El código para sidebar.php sería el siguiente:</p>
<pre>
&lt;div id=&quot;sidebar&quot;&gt;
		&lt;h3&gt;Navegación&lt;/h3&gt;
		&lt;ul&gt;
			&lt;li&gt;&lt;a title=&quot;Inicio&quot; href=&quot;&lt;?php bloginfo('url'); ?&gt;&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
			&lt;?php
			fb_posts_by_category();

			wp_list_pages( 'title_li=&amp;sort_column=menu_order&amp;exclude=2,14,49' );
			?&gt;
		&lt;/ul&gt;
&lt;/div&gt;
</pre>
<p>Tenemos a una div con el identificador &#8220;sidebar&#8221; para trabajar su diseño en style.css. Además, un encabezado para la navegación y la lista, que nos dará:</p>
<p>- Un link al Inicio<br />
- La lista de nuestras categorías con artículos como submenú<br />
- Algunas páginas estáticas. Habrá que modificar las que aquí en el ejemplo se excluyen en &#8220;exclude=&#8221; si queremos apartar alguna en particular. Un &#8220;include=&#8221; puede resultar igualmente útil. Si no queremos páginas en absoluto, se puede borrar el wp_list_pages íntegro sin peligro.</p>
<p>¡Comentad como siempre vuestras investigaciones!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/listar-categorias-con-sus-ultimos-articulos-en-la-sidebar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mostrar artículos relacionados con un shortcode</title>
		<link>http://www.todowp.org/mostrar-articulos-relacionados-con-un-shortcode/</link>
		<comments>http://www.todowp.org/mostrar-articulos-relacionados-con-un-shortcode/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 18:00:01 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Artículos relacionados]]></category>
		<category><![CDATA[Etiquetas]]></category>
		<category><![CDATA[Tags]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3603</guid>
		<description><![CDATA[Los shortcodes, introducidos en la versión 2.5 de WP, son una manera fácil de añadir en el editor HTML de WordPress diferentes funcionalidades, como las galerías de imágenes, la activación de tal ciertos plugins sólo para la ocasión (adición de tablas, formularios de contacto, botones de compra, &#8230;), etc. Hoy vamos a pegar un código [...]]]></description>
			<content:encoded><![CDATA[<p>Los <a href="http://www.wprecipes.com/how-to-save-time-by-using-wordpress-shortcodes"><em>shortcodes</em></a>, introducidos en la versión 2.5 de WP, son una manera fácil de añadir en el editor HTML de WordPress diferentes funcionalidades, como las galerías de imágenes, la activación de tal ciertos plugins sólo para la ocasión (adición de tablas, formularios de contacto, botones de compra, &#8230;), etc.</p>
<p>Hoy vamos a pegar un código en functions.php que nos permitirá mostrar una lista de artículos relacionados siempre y cuando hayamos incluído cierto shortcode al final del artículo que estemos escribiendo escribiendo.</p>
<p><a href="http://paragraphe.org/todowordpress/shortcode-relacionados.txt">Copiar y pegar</a></p>
<p>Guardamos y regresamos a nuestros artículos. A los que les añadamos este <em>shortcode</em>&#8230;</p>
<pre>
     [related_posts]
</pre>
<p>&#8230;mostrarán una lista de relacionados, basada en las etiquetas.</p>
<p>El <em>shortcode</em> lo podemos emplazar (he ahí otra ventaja además del poder escoger artículo a artículo si lo usamos o no) allí donde queramos: principio, mitad o final del post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/mostrar-articulos-relacionados-con-un-shortcode/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Crear menús de navegación con HTML, CSS y PHP</title>
		<link>http://www.todowp.org/crear-menus-de-navegacion-con-html-css-y-php/</link>
		<comments>http://www.todowp.org/crear-menus-de-navegacion-con-html-css-y-php/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 18:00:31 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Lista]]></category>
		<category><![CDATA[Menú]]></category>
		<category><![CDATA[Menú de Navegación]]></category>
		<category><![CDATA[Navegación]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Template Tags]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3535</guid>
		<description><![CDATA[Mientras esperamos el lanzamiento oficial de WordPress 3.0 y sus nuevas funcionalidades, vamos a tener tiempo para empezar a explorar la versión beta, que ya podemos descargar de la página oficial. Las nuevas funcionalidades que llegan con esta versión y que tienen que ver con los menús nos permitirán seleccionar qué elementos dinámicos incluiremos en [...]]]></description>
			<content:encoded><![CDATA[<p>Mientras esperamos el lanzamiento oficial de WordPress 3.0 y sus nuevas funcionalidades, vamos a tener tiempo para empezar a explorar <a href="http://wordpress.org/development/2010/04/wordpress-3-0-beta-1/">la versión beta</a>, que ya podemos descargar de la página oficial.</p>
<p>Las nuevas funcionalidades que llegan con esta versión y que tienen que ver con los menús nos permitirán seleccionar qué elementos dinámicos incluiremos en la navegación de nuestra web, como tags, categorías o links, desde la misma Administración. Hemos pensado que sería interesante acercarnos a la creación de menús para tenerla fresca a la hora de implementar las nuevas posibilidades que WordPress nos ofrece en su última versión.</p>
<p><span id="more-3535"></span></p>
<p>Recordemos que la más típica forma de crear un menú es usando elementos de lista, &#8220;floteados&#8221; a la izquierda o dispuestos como &#8220;inline&#8221;, y sin <strong>list-style-type</strong>, aunque en <a href="http://www.alistapart.com/articles/previewofhtml5">HTML5</a> (que está aún en proyecto) tendremos una forma más rapida para crearlos, con el <a href="http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_nav">tag &#8220;nav&#8221;</a>.</p>
<p>Vamos a usar la forma convencional con HTML4 y a suponer que estamos creando desde cero un tema de WordPress para nuestra web. En style.css, podríamos usar el siguiente CSS:</p>
<pre>

/*
tipografía
*/

#mi_menu{
	font-family:Arial,sans-serif;
	font-size:10px;
	}

/*
formatear el marco de lista
*/

#mi_menu ul{
	margin:0;
	padding:0;
	list-style-type:none;
	}

/*
cada elemento de lista, con float:left para que cree lista horizontal
*/
#mi_menu li{
	float:left;
	height:18px;
	line-height:18px;
	text-align:center;
	background: #eee;
	}

/*
los enlaces de la lista, en display:block para que ocupen todo el espacio y sea fácil clicarlos
*/

#mi_menu li a{
	display:block;
	padding: 9px 24px;
	background: #eee;
	color:#111;
	text-decoration:none;
	border-right: 1px solid #ddd;
	}

/*
un efecto de color a escoger, cuando el mouse sobrevuela cada elemento
*/

#mi_menu li a:hover{
	background: #555;
	color:#eee
	}
</pre>
<p>Veamos ahora cómo debería estar dispuesta la lista en HTML:</p>
<pre>
	&lt;div id=&quot;mi_menu&quot;&gt;
	&lt;ul&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Elemento Uno&lt;/a&gt;
		&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Elemento Dos&lt;/a&gt;
		&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Elemento Tres&lt;/a&gt;
		&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Elemento Cuatro&lt;/a&gt;
		&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Elemento Cinco&lt;/a&gt;
		&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Elemento Seis&lt;/a&gt;
		&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Elemento Siete&lt;/a&gt;
		&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Elemento Ocho&lt;/a&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/div&gt;
</pre>
<pre>
<a href="http://paragraphe.org/todowordpress/prueba.html">Ejemplo</a>
</pre>
<p>Pero en vez de crearla elemento a elemento, lo interesante será que dinámicamente se nos creen los elementos de lista: por ejemplo, a través de algunas de nuestras páginas y de nuestras categorías, que en ese caso enlazarían a una página de archivo.</p>
<h3>Nuestra lista</h3>
<p>Son dos &#8220;template tags&#8221; en concreto las que nos lo permitirán: <a href="http://codex.wordpress.org/Template_Tags/wp_list_pages">wp_list_pages</a> y <a href="http://codex.wordpress.org/Template_Tags/wp_list_categories">wp_list_categories</a>.</p>
<p>Normalmente los listaríamos así:</p>
<pre>
&lt;ul&gt;
&lt;?php wp_list_pages(); ?&gt;
&lt;?php wp_list_categories(); ?&gt;
&lt;/ul&gt;
</pre>
<p>Pero habrá, por supuesto, que considerar que no vamos simplemente a necesitar <strong>todas</strong> las páginas creadas, ni <strong>todas</strong> las categorías, ni un orden puramente alfabético.</p>
<p>Por tanto, ¿cómo &#8220;matizar&#8221; ambas llamadas a la base de datos? Echemos un vistazo a las posibilidades que ambos recursos nos ofrecen.</p>
<h3>Antes de nuestra lista: variables para listar páginas</h3>
<p>Antes de escribir el código para nuestra lista con ambas llamadas, tendremos que pegar dos conjuntos de variables que afectarán, el primero, a <strong>wp_list_pages</strong>, y el segundo a <strong>wp_list_categories</strong>. Empecemos por el primero.</p>
<pre>
&lt;?php $paginas = array(
    'depth'        =&gt; 0,
	//un valor de 0 lista p&aacute;ginas, y si tienen sub-páginas, las añade como sub-listas tambi&eacute;n
	//esto nos va bi&eacute;n cuando queremos crear un submen&uacute;.
	//un valor de -1 lista TODAS las p&aacute;ginas, en una lista simple
	//un valor de 1 lista páginas madre &amp;uacute:nicamente
	//un valor de 2, 3, etc lista páginas s&oacute;lo a &eacute;se nivel de profundidad

	//Podemos hacer que una p&aacute;gina pertenezca a otra como subp&aacute;gina en nuestra Administraci&oacute;n
	//(cuando vamos a clicar para que se publique)

    'show_date'    =&gt; ,
	//si delante de la coma escribimos por ejemplo: created
	//se nos listar&aacute; la fecha de publicaci&oacute;n de la p&aacute;gina

    'date_format'  =&gt; get_option('date_format'),
	//si queremos fecha, aqu&iacute; usaremos el formato que se puede especificar en la Admin

    'child_of'     =&gt; 0,
	//ahora est&aacute; a 0, es decir, inactivo
	//si escribimos ah&iacute; la ID num&eacute;rica de una p&aacute;gina nos devolver&aacute; las sub-p&aacute;ginas que &eacute;sta tuviera
	//en vez de la pagina directamente

    'exclude'      =&gt; ,
	//lugar para escribir la ID de las paginas que queremos exclu&iacute;r -separadas por comas-

    'include'      =&gt; ,
	//SOLAMENTE tr&aacute;eme estas IDs (una manera potente de pedir determinadas p&aacute;ginas de entre todas las que tengamos)

    'title_li'     =&gt; ,
	//lugar para especificar si queremos un t&iacute;tulo gen&eacute;rico para las p&aacute;ginas
					//en los men&uacute;s horizontales, no es habitual, en los verticales s&iacute;

    'echo'         =&gt; 1,
	//muestro o guardo como PHP?
	//1 significa muestro (imprimo), 0 significa guardo (para trabajar con PHP m&aacute;s tarde)

    'authors'      =&gt; ,
	//ID num&eacute;ricas de p&aacute;ginas creadas por tal o cual autor s&oacute;lamente

    'sort_column'  =&gt; 'menu_order, post_title',
	//en la Administraci&oacute;, a cada pagina se le puede dar un valor para ordenarla
	//hay que buscar el campo adecuado para ello cuando estamos editando la p&aacute;gina
	//ser&aacute; el orden en que salgan en nuestra lista
	//aqu&iacute;, si la opci&oacute;n est&aacute; desetimada, tenemos un &quot;fallback&quot; para ordenarlas por t&iacute;tulo
	//otras opciones son: post_title, post_date, post_modified, ID, post_author, post_name

    'link_before'  =&gt; ,
	//algo para poner delante del nombre de la p&aacute;gina
	//por ejemplo, el signo +
    'link_after'   =&gt; ,
	//algo para poner despu&eacute;s del nombre de la p&aacute;gina
	//por ejemplo, de nuevo el signo +

    'meta_key'  =&gt; ,
	//s&oacute;lo las p&aacute;ginas que tengan activado cierto campo personalizado

    'meta_value'   =&gt; ,
	//s&oacute;lo las p&aacute;ginas que tengan activado cierto VALOR de campo personalizado

    'exclude_tree' =&gt;
	//a&ntilde;adir aqu&iacute; la ID de una pagina y sus sub-p&aacute;ginas para exclu&iacute;r al grupo entero

	); ?&gt;
</pre>
<p>Obviamente podemos sólo especificar algunos de los elementos y ahorrarnos la larga lista de argumentos para simplemente poner&#8230;</p>
<pre>
&lt;ul&gt;
  &lt;?php wp_list_pages('sort_column=menu_order&amp;title_li='); ?&gt;
&lt;/ul&gt;
</pre>
<p>&#8230;que nos traería páginas por orden de menú, y sin título genérico de lista.</p>
<h3>Segundo conjunto de variables: listando categorías</h3>
<p>Con las categorías tenemos que hacer lo mismo y pegar y editar lo siguiente:</p>
<pre>
&lt;?php $categorias = array(

    'show_option_all'    =&gt; ,
		//un valor otro que nulo, a&ntilde;ade un link que diga &quot;hacia todoas las categor&iacute;as&quot;

    'orderby'            =&gt; 'name',
		//ID
		//name
		//slug
		//count
		//term_group
		//(a escoger, lo t&iacute;pico es name)

    'order'              =&gt; 'ASC',
		//ASC -desplegar de A a Z- o DESC -desplegar de Z a A-

    'show_last_update'   =&gt; 0,
		//un valor de 1 nos da el tiempo en que el &uacute;ltimo post de &eacute;sa categor&iacute;a fue escrito

    'style'              =&gt; 'list',
		//la alternativa es 'none', que separa los items con &lt;br&gt; tags

    'show_count'         =&gt; 0,
		//mostrar si o no (1 o 0) cu&aacute;ntos posts hay en cada categor&iacute;a

    'hide_empty'         =&gt; 1,
		//1 esconde las categor&iacute;as vac&iacute;as, 0 las muestra

    'use_desc_for_title' =&gt; 1,
		//a&ntilde;adir la eventual descripci&oacute;n al atributo alt de cada link

    'child_of'           =&gt; 0,
		//una ID de categor&iacute;a listar&aacute; s&oacute;lo sub-categor&iacute;as en vez de la categor&iacute;a principal, 0 es inactivo

    'feed'               =&gt; ,
		//un valor de RSS nos da links al feed de cada categor&iacute;a, adem&aacute;s de &eacute;sta

    'feed_type'          =&gt; ,
		//

    'feed_image'         =&gt; ,
		//

    'exclude'            =&gt; ,
		//ID a exclu&iacute;r, muy &uacute;til

    'exclude_tree'       =&gt; ,
		//olvidarse de sub-categor&iacute;as o no, por defecto es mostrarlas, como aqu&iacute;

	'include'            =&gt; ,
		//s&oacute;lo inclu&iacute;r ciertas IDs

    'current_category'   =&gt; 0,
		//dar la clase current-cat (para dar css espec&iacute;ficos) a la ID de la categor&iacute;a que se escriba

    'hierarchical'       =&gt; true,
		//false nos da una lista simple, sin &aacute;rbol

    'title_li'           =&gt; ,
		//lo mejor es dejarlo vac&iacute;o, si queremos dar un t&iacute;tulo gen&eacute;rico a la lista, a&ntilde;adir esto __( 'Categories' )

    'number'             =&gt; NULL,
		//limitar a base de PHP las categor&iacute;as retornadas, aqu&iacute; lo tenemos desactivado y nos da todas las que hayan sido filtradas

    'echo'               =&gt; 1,
		//un valor de cero nos guarda los resultados para eventuales operaciones en PHP posteriores

    'depth'              =&gt; 0
		//0 : todas las cats y subcats
		//-1 : idem, pero sin distinguir (lista 'plana', sin sub-lista)
		//1 : s&oacute;lo categor&iacute;as pariente
		//n : 2, 3 etc, n&uacute;mero de niveles a tener en cuenta

	);
	?&gt;
</pre>
<h3>El menú, finalmente</h3>
<p>Una vez hayamos especificado los valores que nos interesen para páginas y categorías, podemos escribir debajo los dos <em>template tags</em> que nos traerán esos resultados entre la apertura y cierre de la lista:</p>
<pre>
	&lt;ul&gt;
		&lt;?php wp_list_pages( $paginas ); ?&gt;
		&lt;?php wp_list_categories( $categorias ); ?&gt;
	&lt;/ul&gt;
</pre>
<p>Esperamos que esta mirada en detalle a estos dos <em>template tags</em> os sea útil para construir adecuadamente vuestros menús de navegación.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/crear-menus-de-navegacion-con-html-css-y-php/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Mostrar cierto contenido sólo a usuarios registrados y autenticados</title>
		<link>http://www.todowp.org/mostrar-cierto-contenido-solo-a-usuarios-registrados-y-autenticados/</link>
		<comments>http://www.todowp.org/mostrar-cierto-contenido-solo-a-usuarios-registrados-y-autenticados/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 18:00:52 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Esconder Contenido]]></category>
		<category><![CDATA[Sólo Miembros]]></category>
		<category><![CDATA[Usuarios Registrados]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3607</guid>
		<description><![CDATA[Hoy veremos un sencillo código para dejar en functions.php, que nos permitirá, mediante un shortcode, permitir la lectura del contenido de nuestros artículos solamente a un usuario registrado que haya iniciado sesión como tal: add_shortcode( 'member', 'member_check_shortcode' ); function member_check_shortcode( $atts, $content = null ) { if ( is_user_logged_in() &#38;&#38; !is_null( $content ) &#38;&#38; !is_feed() [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy veremos un sencillo código para dejar en functions.php, que nos permitirá, mediante un <em>shortcode</em>, permitir la lectura del contenido de nuestros artículos solamente a un usuario registrado que haya iniciado sesión como tal:</p>
<pre>
add_shortcode( 'member', 'member_check_shortcode' );

function member_check_shortcode( $atts, $content = null ) {
	 if ( is_user_logged_in() &amp;&amp; !is_null( $content ) &amp;&amp; !is_feed() )
		return $content;
	return '';
}
</pre>
<p>Salvaremos e iremos a editar los artículos con contenido &#8220;confidencial&#8221;. Todo lo que pongamos entre estos dos shortcodes&#8230;</p>
<pre>
[member]

texto, texto, texto, etc.

[/member]
</pre>
<p>&#8230;quedará escondido para un usuario que no haya ingresado en nuestro site (anónimo).</p>
<p>Créditos: <a href="http://justintadlock.com/archives/2009/05/09/using-shortcodes-to-show-members-only-content">Justin Tadlock</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/mostrar-cierto-contenido-solo-a-usuarios-registrados-y-autenticados/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cómo mostrar una página listando a todos los contribuyentes de un blog</title>
		<link>http://www.todowp.org/como-mostrar-una-pagina-listando-a-todos-los-contribuyentes-de-un-blog/</link>
		<comments>http://www.todowp.org/como-mostrar-una-pagina-listando-a-todos-los-contribuyentes-de-un-blog/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 19:00:40 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Autores]]></category>
		<category><![CDATA[Avatar]]></category>
		<category><![CDATA[Pagina Personalizada]]></category>
		<category><![CDATA[Template]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3377</guid>
		<description><![CDATA[Hoy veremos cómo crear una página en nuestro site que premita listar, con sus avatars y otra información de contacto, a los múltiples autores que se hayan registrado en nuestro site como escritores/colaboradores.]]></description>
			<content:encoded><![CDATA[<p>Hoy veremos cómo crear una página en nuestro site que permita listar, con sus avatares y otra información de contacto, a los múltiples autores que se hayan registrado en nuestra web como escritores/colaboradores.</p>
<p><span id="more-3377"></span></p>
<h3>1- Creando una página especial para ello</h3>
<p>Vamos a crear un archivo llamado los-autores.php. Su contenido sería, por ejemplo, el siguiente:</p>
<pre>
&lt;?php
/*
Template Name: Autores
*/
?&gt;

&lt;?php get_header(); ?&gt;

&lt;div class=&quot;autores&quot;&gt;
	&lt;ul&gt;

	&lt;/ul&gt;
&lt;/div&gt;

&lt;?php get_sidebar(); ?&gt;

&lt;?php get_footer(); ?&gt;
</pre>
<p>Veréis que hemos creado lo que se llama un template personalizado de página. Su función es darle una forma distinta de la página que WP nos crearía por defecto con page.php, en este caso para listar autores programáticamente.</p>
<p>Fijaos que hemos dejado vacía la lista, en la que más tarde deberemos pegar algo de PHP.</p>
<p>Tendremos asimismo que dar algunos estilos de CSS al espacio creado:</p>
<pre>
.autores{ /*nuestro código aquí*/ }
</pre>
<p>Seguidamente, vamos a asignar este nuevo template a una página publicada y vacía en nuestra Administración:</p>
<pre>
Páginas &gt;
  Crear Página &gt;
    Creamos el título &gt;
      Asignamos el template especial que acabamos de crear &gt;
        Publicamos.
</pre>
<h3>2- Abriendo functions.php y pegando el código mágico</h3>
<p>Abriremos ahora functions.php en nuestro tema (o lo crearemos y emplazaremos junto al resto de los archivos del mismo) y pegaremos en su interior el siguiente código (al final de todo):</p>
<p><a href="http://paragraphe.org/todowordpress/listar-autores.txt">copiar y pegar</a></p>
<p>No olvidemos que el código debe ser emplazado entre tags de apertura y cierre de PHP, ya sean los que tengamos de entrada en el functions.php de nuestro tema, ya sea añadiéndolos si debemos crearlo:</p>
<pre>
&lt;?php
// código propuesto aquí, acaso con el resto de funciones con las que el tema nos viniera
?&gt;
</pre>
<p>Este código nos está preparando para que nos sea posible más tarde hacernos con el avatar de cada uno de nuestros autores registrados, su nombre, un link a su website y a su cuenta de Twitter.</p>
<p>Pegaremos ése código, salvaremos y cerraremos.</p>
<h3>3- ¡Nota! Twitter como campo extra en el perfil</h3>
<p>Ya que por defecto ese campo no está ahí y siempre puede ser interesante añadirlo (o cualquier otro campo extra), podemos seguir las instrucciones <a href="http://www.todowp.org/blogs-multi-autor-como-anadir-campos-en-la-ficha-de-autor/">aquí</a>.</p>
<h3>4- Regresando a los-autores.php</h3>
<p>Llega el final. Iremos a los-autores.php, lo abriremos y pegaremos, en el interior de la lista que dejamos a punto, el siguiente código, que nos desarrollará la función que hemos creado en functions.php:</p>
<pre>
&lt;?php contributors(); ?&gt;
</pre>
<p>Salvaremos y cerraremos. Nos podemos dirigir entonces a la página que publicamos, abrirla como si la fuésemos a editar y clicar en <strong>Ver Página</strong> para comprobar el resultado.</p>
<h3>¡No olvidéis copiar su URL y añadirla al menú principal de vuestro site!</h3>
<p>Esperamos que el truco os resulte de utilidad.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/como-mostrar-una-pagina-listando-a-todos-los-contribuyentes-de-un-blog/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Comentarios recientes con Gravatar</title>
		<link>http://www.todowp.org/comentarios-recientes-con-gravatar/</link>
		<comments>http://www.todowp.org/comentarios-recientes-con-gravatar/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 19:00:23 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Comentarios]]></category>
		<category><![CDATA[Gravatar]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3197</guid>
		<description><![CDATA[He aquí un sencillo código para cuando queremos mostrar los últimos comentarios realizados en nuestro blog (en el índice del mismo, por ejemplo), a la vez que el Gravatar de sus autores: Copiar y pegar en nuestro template (allí dónde más nos convenga) Aquí estamos invocando los cinco últimos comentarios, lo cual podremos cambiar por [...]]]></description>
			<content:encoded><![CDATA[<p>He aquí un sencillo código para cuando queremos mostrar los últimos comentarios realizados en nuestro blog (en el índice del mismo, por ejemplo), a la vez que el <a href="http://www.gravatar.com/">Gravatar</a> de sus autores:</p>
<p><a href="http://www.todowp.org/download/24/">Copiar y pegar en nuestro template (allí dónde más nos convenga)</a></p>
<p>Aquí estamos invocando los cinco últimos comentarios, lo cual podremos cambiar por el número deseado modificando la segunda línea del código.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/comentarios-recientes-con-gravatar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Obtener etiquetas de una cierta (o ciertas) categoría(s)</title>
		<link>http://www.todowp.org/obtener-etiquetas-de-una-cierta-o-ciertas-categoria-s/</link>
		<comments>http://www.todowp.org/obtener-etiquetas-de-una-cierta-o-ciertas-categoria-s/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 19:00:48 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Categorías]]></category>
		<category><![CDATA[Etiquetas]]></category>
		<category><![CDATA[Tags]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3210</guid>
		<description><![CDATA[Si queremos, en algún espacio de nuestros templates (en los archivos, el índice, single.php&#8230;), proponer un conjunto de etiquetas que reúnan posts no sólo marcados con ellas, sino que pertenezcan a una misma categoría, tenemos aquí el código para conseguirlo. Abriremos functions.php y pegaremos lo siguiente: (copiar y pegar) A partir de aquí, en nuestro [...]]]></description>
			<content:encoded><![CDATA[<p>Si queremos, en algún espacio de nuestros <em>templates</em> (en los archivos, el índice, single.php&#8230;), proponer un conjunto de etiquetas que reúnan posts no sólo marcados con ellas, sino que pertenezcan a una misma categoría, tenemos aquí el código para conseguirlo.</p>
<p>Abriremos functions.php y pegaremos lo siguiente: <a href="http://www.todowp.org/download/22/">(copiar y pegar)</a></p>
<p>A partir de aquí, en nuestro <em>template</em> (por ejemplo, index.php), escogeremos el lugar que creamos más conveniente para nuestras etiquetas y escribiremos la llamada a la función:</p>
<pre>
   $args = array('categories' =&gt; '12,13,14');
   $tags = get_category_tags($args);
</pre>
<p>Por supuesto, deberemos poner los tags de apertura y cierre de PHP.</p>
<p>De este modo, vamos a reunir etiquetas que hayan sido usadas en artículos bajo las categorías con ID 12, 13 y 14. La identidad numérica de cada categoría la sabremos sobrevolándola con el cursor del ratón en nuestro panel de Administración.</p>
<p>Créditos: <a href="http://wordpress.org/support/topic/276635?replies=26">foros de WordPress.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/obtener-etiquetas-de-una-cierta-o-ciertas-categoria-s/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Shortcodes como modo rápido de incluir imágenes en nuestros artículos</title>
		<link>http://www.todowp.org/shortcodes-como-modo-rapido-de-incluir-imagenes-en-nuestros-articulos/</link>
		<comments>http://www.todowp.org/shortcodes-como-modo-rapido-de-incluir-imagenes-en-nuestros-articulos/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 19:00:25 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Imágenes]]></category>
		<category><![CDATA[Shortcodes]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3224</guid>
		<description><![CDATA[Para los más inquietos de nosotros, los que gustamos de subir por FTP un montón de imágenes a nuestro site con nombres de archivo fáciles y luego utilizarlas rápidamente cuando escribimos un artículo (sin las complicaciones del Media Uploader), tenemos a nuestra disposición un muy buen truco para acelerar esa inclusión. Para ello, abriremos functions.php [...]]]></description>
			<content:encoded><![CDATA[<p>Para los más inquietos de nosotros, los que gustamos de subir por FTP un montón de imágenes a nuestro site con nombres de archivo fáciles y luego utilizarlas rápidamente cuando escribimos un artículo (sin las complicaciones del <em>Media Uploader</em>), tenemos a nuestra disposición un muy buen truco para acelerar esa inclusión.</p>
<p><span id="more-3224"></span></p>
<p>Para ello, abriremos functions.php y pegaremos el siguiente código:</p>
<pre>
function image_shortcode($atts, $content = null) {
extract( shortcode_atts( array(
'name' =&gt; '',
'align' =&gt; 'right',
'ext' =&gt; 'png',
'path' =&gt; '/wp-content/uploads/',
'url' =&gt; ''
), $atts ) );
$file=ABSPATH.&quot;$path$name.$ext&quot;;
if (file_exists($file)) {
$size=getimagesize($file);
if ($size!==false) $size=$size[3];
$output = &quot;&lt;img src='&quot;.get_option('siteurl').&quot;$path$name.$ext' alt='$name' $size align='$align' class='align$align' /&gt;&quot;;
if ($url) $output = &quot;&lt;a href='$url' title='$name'&gt;&quot;.$output.'&lt;/a&gt;';
return $output;
}
else {
trigger_error(&quot;'$path$name.$ext' image not found&quot;, E_USER_WARNING);
return '';
}
}
add_shortcode('image','image_shortcode');
</pre>
<p>Este código debe, por supuesto, abrirse y cerrarse con los tags de apertura y cierre de PHP e incluirse al final de functions.php o bien entre las diversas funciones que allí ya tengamos especificadas.</p>
<p>Luego, en nuestros artículos, no tendremos más que escribir el siguiente <em>shortcode</em>:</p>
<pre>
[image name=Montevideo]
</pre>
<p>&#8220;Montevideo&#8221; es el nombre del archivo Montevideo.png.</p>
<p>Notad que aquí hemos permitido la inclusión de archivos en formato .png (pueden ser en .jpg pero lo tenéis que cambiar).</p>
<p>Esperamos que este truco sea de vuestra utilidad.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/shortcodes-como-modo-rapido-de-incluir-imagenes-en-nuestros-articulos/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Comentarios recientes sin necesidad de plugins</title>
		<link>http://www.todowp.org/comentarios-recientes-sin-necesidad-de-plugins/</link>
		<comments>http://www.todowp.org/comentarios-recientes-sin-necesidad-de-plugins/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 19:00:36 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Comentarios]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=2777</guid>
		<description><![CDATA[Muchas veces nos interesa disponer de una pequeña cantidad de código que, añadida a nuestros templates, haga innecesario depender de un plugin. Con ello, podremos maniobrar más fácilmente con el tema con el que estemos tratando. Hoy veremos una manera rápida para mostrar nuestros comentarios recientes sin plugins ni widgets. Este código podremos pegarlo primero [...]]]></description>
			<content:encoded><![CDATA[<p>Muchas veces nos interesa disponer de una pequeña cantidad de código que, añadida a nuestros templates, haga innecesario depender de un plugin. Con ello, podremos maniobrar más fácilmente con el tema con el que estemos tratando.</p>
<p>Hoy veremos una manera rápida para mostrar nuestros comentarios recientes sin plugins ni widgets. Este código podremos pegarlo primero en functions.php y luego, con una nueva función lista para nosotros, directamente en nuestros templates (por ejemplo, al final de todo de sidebar.php o incluso en alguno de los apartados que conformen nuestro footer.php).</p>
<p><a href="http://www.todowp.org/download/25/">El código es el siguiente (copiar y pegar en functions.php)</a></p>
<p>Sólo nos queda invocar los últimos comentarios con el nuevo tag que se nos habrá creado : &lt;?php recent_comments(); ?&gt;</p>
<p>Si queremos cinco comentarios en vez de 10 (que es la cantidad por defecto), podemos especificarlo así :</p>
<p>&lt;?php recent_comments(&#8217;5&#8242;); ?&gt;</p>
<p>Esperamos que os resulte de interés.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/comentarios-recientes-sin-necesidad-de-plugins/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Listar nuestros posts más populares en base al número de comentarios</title>
		<link>http://www.todowp.org/listar-nuestros-posts-mas-populares-en-base-al-numero-de-comentarios/</link>
		<comments>http://www.todowp.org/listar-nuestros-posts-mas-populares-en-base-al-numero-de-comentarios/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 19:00:46 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Comentarios]]></category>
		<category><![CDATA[Entradas]]></category>
		<category><![CDATA[Posts]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=2723</guid>
		<description><![CDATA[Sin necesidad de utilizar ningún plugin, tenemos a nuestra disposición un buen método para listar, según el número de comentarios, nuestros posts más populares (o los más comentados, según queramos enfocarlo con el título que demos a la lista). No tendremos más que dirigirnos a la barra lateral (sidebar.php; o pie de página, footer.php) de [...]]]></description>
			<content:encoded><![CDATA[<p>Sin necesidad de utilizar ningún plugin, tenemos a nuestra disposición un buen método para listar, según el número de comentarios, nuestros posts más populares (o los más comentados, según queramos enfocarlo con el título que demos a la lista).</p>
<p>No tendremos más que dirigirnos a la barra lateral (sidebar.php; o pie de página, footer.php) de nuestro tema de WordPress y editarla (recomendamos como siempre a <a href="http://notepad-plus.sourceforge.net/uk/site.htm">Notepad++</a> para escribir código) con el siguiente <em>snippet</em>:</p>
<p><a href="http://www.todowp.org/download/26/">Copiar y pegar en nuestro template.</a></p>
<p>Con este código estamos realizando un sondeo general a nuestra base de datos tomando los 7 posts con más comentarios, preparando sus títulos, URLs y número exacto de comentarios que tengan, y disponiéndolo todo en una lista que deberemos por supuesto &#8220;decorar&#8221; con CSS a nuestro gusto.</p>
<p>Con este método, quedamos como reyes porque no necesitamos largos cálculos para entender cuál de nuestros posts es más visualizado y reservamos al lector un poco de discusión con todos los comentarios que allí se mostrarán al acabar la lectura principal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/listar-nuestros-posts-mas-populares-en-base-al-numero-de-comentarios/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Últimos comentarios por categoría</title>
		<link>http://www.todowp.org/ultimos-comentarios-por-categoria/</link>
		<comments>http://www.todowp.org/ultimos-comentarios-por-categoria/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 19:00:18 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Categorías]]></category>
		<category><![CDATA[Comentarios]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3214</guid>
		<description><![CDATA[Hoy vamos a ver una manera fácil de conseguir nuestros comentarios mostrados por categoría; por ejemplo, en nuestro índice. De esta manera, podremos crear varias columnas y añadir allí los comentarios recientes que a cada sección del site correspondan. Tendremos que pegar el siguiente código en el espacio que consideremos adecuado en nuestro template (por [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy vamos a ver una manera fácil de conseguir nuestros comentarios mostrados por categoría; por ejemplo, en nuestro índice. De esta manera, podremos crear varias columnas y añadir allí los comentarios recientes que a cada sección del site correspondan.</p>
<p>Tendremos que pegar el siguiente código en el espacio que consideremos adecuado en nuestro template (por ejemplo, tratándose del index.php, justo después de wp_header): <a href="http://www.todowp.org/download/23/">copiar y pegar</a>.</p>
<p>En la línea 15, deberemos cambiar los números allí presentes (10 y 20) por las ID numéricas de las categorías de las que deseemos mostrar los comentarios. Dichas ID las conoceremos sobrevolando con el puntero del ratón nuestras propias categorías en la Administración de WordPress.</p>
<p>Los <a href="http://wordpress.org/support/topic/345126?replies=11">créditos van, una vez más, al foro de WordPress.org</a>, donde podréis encontrar otra versión del truco, que concierne en este caso a sub-categorías.</p>
<p>Esperamos que os atreváis con el código y nos planteéis cualquier duda en los comentarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/ultimos-comentarios-por-categoria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Listar posts recientemente modificados</title>
		<link>http://www.todowp.org/listar-posts-recientemente-modificados/</link>
		<comments>http://www.todowp.org/listar-posts-recientemente-modificados/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 19:00:29 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Posts]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=2685</guid>
		<description><![CDATA[Para los sites más técnicos o académicos (o simplemente muy activos), donde las actualizaciones de los artículos pueden ser importantes para el lector, puede resultar útil reservar un espacio en la barra lateral de nuestro diseño para una lista de los últimos artículos modificados. Pensemos por ejemplo en un site amateur de periodismo, o un [...]]]></description>
			<content:encoded><![CDATA[<p>Para los sites más técnicos o académicos (o simplemente muy activos), donde las actualizaciones de los artículos pueden ser importantes para el lector, puede resultar útil reservar un espacio en la barra lateral de nuestro diseño para una lista de los últimos artículos modificados.</p>
<p>Pensemos por ejemplo en un site <em>amateur</em> de periodismo, o un site de programación, o en una red donde se aceptan artículos universitarios y en todas las correcciones que allí pueden suceder tras una primera publicación. Podemos incluso pensar en una comunidad online para viajeros, donde todos quieren añadir detalles extra a sus relatos de viaje, y ganar algo más de presencia general en el blog multi-usuario.</p>
<p>Pues bien, elijamos estratégicamente el lugar donde queremos que aparezca la lista de últimos artículos modificados. Normalmente será la barra lateral, que en nuestro tema de WordPress tiene el nombre de sidebar.php. Añadiremos lo siguiente: <a href="http://www.todowp.org/download/27/">copiar y pegar</a>.</p>
<p>Fijaos en que hemos puesto 5 elementos para ser listados, pero podemos, por supuesto, cambiar dicha cifra. Será entonces el momento de formatear con CSS ese espacio, y hacerlo acorde con el resto del diseño del blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/listar-posts-recientemente-modificados/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Función para generar un botón de &#039;Recomendar a un amigo&#039;</title>
		<link>http://www.todowp.org/funcion-para-generar-un-boton-de-recomendar-a-un-amigo/</link>
		<comments>http://www.todowp.org/funcion-para-generar-un-boton-de-recomendar-a-un-amigo/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 19:00:23 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3207</guid>
		<description><![CDATA[Con tal de que nuestros artículos sean publicitados si gustan a la gente, siempre puede ser interesante disponer de un botón que permita enviarlos por mail a alguien a quien el lector crea que les pueden interesar. Para ello, abriremos functions.php, y pondremos el siguiente código al final de todo: &#60;?php function direct_email($text=&#34;Enviar un mail [...]]]></description>
			<content:encoded><![CDATA[<p>Con tal de que nuestros artículos sean publicitados si gustan a la gente, siempre puede ser interesante disponer de un botón que permita enviarlos por mail a alguien a quien el lector crea que les pueden interesar.</p>
<p>Para ello, abriremos functions.php, y pondremos el siguiente código al final de todo:</p>
<pre>
&lt;?php
function direct_email($text=&quot;Enviar un mail a un amigo&quot;){
global $post;
$title = htmlspecialchars($post-&gt;post_title);
$subject = 'En '.htmlspecialchars(get_bloginfo('name')).' : '.$title;
$body = 'Te recomiendo : '.$title.'. en esta página : '.get_permalink($post-&gt;ID);
$link = '&lt;a rel=&quot;nofollow&quot; href=&quot;mailto:?subject='.rawurlencode($subject).'&amp;amp;body='.rawurlencode($body).'&quot; title=&quot;'.$text.' : '.$title.'&quot;&gt;'.$text.'&lt;/a&gt;';
return $link;
}
?&gt;
</pre>
<p>Sólo nos faltará poner allí donde creamos conveniente en nuestro template (dentro del <em>loop</em>) el siguiente nuevo <em>template tag</em> que hemos creado:</p>
<pre>
Compartir &lt;?php echo direct_email('par mail') ?&gt; con un amigo
</pre>
<p>Esperamos que lo pongáis en práctica y vuestros comentarios al respecto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/funcion-para-generar-un-boton-de-recomendar-a-un-amigo/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Loop especial en nuestro índice: etiquetas, títulos, y último comentario para cada entrada</title>
		<link>http://www.todowp.org/loop-especial-en-nuestro-indice-etiquetas-titulos-y-ultimo-comentario-para-cada-entrada/</link>
		<comments>http://www.todowp.org/loop-especial-en-nuestro-indice-etiquetas-titulos-y-ultimo-comentario-para-cada-entrada/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 19:00:37 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Índice]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3189</guid>
		<description><![CDATA[Hoy veremos cómo podríamos realizar un loop algo más especial de lo normal. Mostraremos a tal efecto un índice que muestre los 10 últimos artículos con las siguientes características : Que estén en una lista (a estilizar con CSS). Que cada elemento de la lista empiece con el conjunto de etiquetas que se han añadido [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy veremos cómo podríamos realizar un <em>loop</em> algo más especial de lo normal. Mostraremos a tal efecto un índice que muestre los 10 últimos artículos con las siguientes características :</p>
<ul>
<li>Que estén en una lista (a estilizar con CSS).</li>
<li>Que cada elemento de la lista empiece con el conjunto de etiquetas que se han añadido al artículo, enlazadas a su archivo de etiqueta.</li>
<li>Que prosiga con el título del artículo, enlazado a su página individual (<em>permalink</em>).</li>
<li>Que, a todo ello, se le añada el último comentario realizado en ese artículo, linkado, como párrafo, a la página de artículo final con todos los comentarios desplegados.</li>
</ul>
<p>Recordemos que nos hará falta un tema que soporte comentarios y tenga el <em>template</em> adecuado (comments.php):</p>
<pre>
&lt;ul&gt;

&lt;?php $my_query = new WP_Query('showposts=10'); ?&gt;
&lt;?php while ($my_query-&gt;have_posts()) : $my_query-&gt;the_post(); ?&gt;

&lt;li&gt;

&lt;?php the_tags(''); ?&gt; : &lt;a href=&quot;&lt;?php the_permalink(); ?&gt;&quot;&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;

&lt;br&gt;

&lt;?php $comment_array = array_reverse(get_approved_comments($post-&gt;ID)); $count = 1; if ($comment_array) { foreach($comment_array as $comment) { if ($count++ &lt;= 1) { ?&gt;

&amp;mdash; Latest comment by &lt;?php comment_author(); ?&gt; on &lt;?php comment_date(); ?&gt;, &lt;?php comment_time(); ?&gt; :

&lt;br&gt;

&lt;a href=&quot;&lt;?php comment_link(); ?&gt;&quot;&gt;
&lt;?php comment_excerpt(); ?&gt;
&lt;/a&gt;

&lt;?php } } } ?&gt;

&lt;/li&gt;

&lt;?php endwhile; ?&gt;

&lt;/ul&gt;
</pre>
<p>Aunque parezca complicado, uno acaba por necesitar <em>loops</em> de este tipo. ¿Qué os parece? Postead vuestras dudas en los comentarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/loop-especial-en-nuestro-indice-etiquetas-titulos-y-ultimo-comentario-para-cada-entrada/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Contando artículos, páginas, comentarios&#8230;</title>
		<link>http://www.todowp.org/contando-articulos-paginas-comentarios/</link>
		<comments>http://www.todowp.org/contando-articulos-paginas-comentarios/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 19:00:51 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3183</guid>
		<description><![CDATA[Vamos a ver hoy cómo contar los distintos tipos de contenidos en un site &#8220;propulsado&#8221; por WordPress, por si queremos dar en algún momento esta información a nuestros visitantes: cuántos artículos han sido escritos, cuántos comentarios hay en total, etc.: &#60;?php //ARTÍCULOS $num_posts = wp_count_posts( 'post' ); $num_posts = $num_posts-&#62;publish; //publish, draft $num_posts = sprintf( [...]]]></description>
			<content:encoded><![CDATA[<p>Vamos a ver hoy cómo contar los distintos tipos de contenidos en un site &#8220;propulsado&#8221; por WordPress, por si queremos dar en algún momento esta información a nuestros visitantes: cuántos artículos han sido escritos, cuántos comentarios hay en total, etc.:</p>
<pre>
&lt;?php
//ARTÍCULOS
$num_posts = wp_count_posts( 'post' );
$num_posts = $num_posts-&gt;publish; //publish, draft
$num_posts = sprintf( __ngettext( '%s Post', '%s Posts', $num_posts ), number_format_i18n( $num_posts ) );

//PÁGINAS
$num_pages = wp_count_posts( 'page' );
$num_pages = $num_pages-&gt;publish; //publish
$num_pages = sprintf( __ngettext( '%s Page', '%s Pages', $num_pages ), number_format_i18n( $num_pages ) );

//CATEGORÍAS
$num_cats = wp_count_terms('category');
$num_tags = wp_count_terms('post_tag');

//COMENTARIOS
$num_comm = get_comment_count();
$num_comm = $num_comm['approved']; //approved, awaiting_moderation, spam, total_comments
$num_comm = sprintf( __ngettext( '%s Categorie', '%s Categories', $num_comm ), number_format_i18n( $num_comm ) );
$num_comm2 = wp_count_comments( );
$num_comm2 = $num_comm2-&gt;approved; //approved, moderated, spam, total_comments

echo '&lt;ul&gt;';
echo '&lt;li&gt;Artículos: ' . $num_posts . '&lt;/li&gt;';
echo '&lt;li&gt;Páginas: ' . $num_pages . '&lt;/li&gt;';
echo '&lt;li&gt;Categorías: ' . $num_cats . '&lt;/li&gt;';
echo '&lt;li&gt;Etiquetas: ' . $num_tags . '&lt;/li&gt;';
echo '&lt;li&gt;Comentarios a moderar: ' . $num_comm . '&lt;/li&gt;';
echo '&lt;li&gt;Comentarios publicados: ' . $num_comm2 . '&lt;/li&gt;';
echo '&lt;/ul&gt;';
?&gt;
</pre>
<p>En este caso la lista desplegaría el total de artículos, páginas, categorías, comentarios a moderar y comentarios publicados.</p>
<p>Comentadas (con barras al principio, entre líneas) tenéis varias opciones a explotar para cada tipo de recuento: que el artículo esté publicado, o que sea un borrador, etc.</p>
<pre>
//publish, draft
</pre>
<p>Emplazad una palabra o la otra en función de lo que queréis mostrar.</p>
<p>Por supuesto, y por otro lado, vosotros podéis seleccionar sólo una de las operaciones y recortar los elementos que la lista convocaría para ser mostrados.</p>
<p>Esperamos que este pequeño truco sea de vuestra utilidad.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/contando-articulos-paginas-comentarios/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agregar (fácilmente) un botón para Re-Twittear un artículo</title>
		<link>http://www.todowp.org/agregar-un-boton-para-re-twittear-un-articulo-facilmente/</link>
		<comments>http://www.todowp.org/agregar-un-boton-para-re-twittear-un-articulo-facilmente/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 19:00:10 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3203</guid>
		<description><![CDATA[Estuvimos recientemente estudiando un script para implementar un botón que nos permitiera fácilmente insertar la funcionalidad de Re-Tweet en Twitter a nuestros posts. Hoy veremos una forma más integrada en WordPress de conseguir lo mismo, y también mucho más fácil. Abriremos functions.php (o lo crearemos con un editor de texto si no lo tuviéramos, para [...]]]></description>
			<content:encoded><![CDATA[<p>Estuvimos recientemente <a href="http://www.todowp.org/agregar-un-boton-de-retweet-a-nuestros-articulos/">estudiando un script</a> para implementar un botón que nos permitiera fácilmente insertar la funcionalidad de Re-Tweet en <a href="http://twitter.com/">Twitter</a> a nuestros posts. Hoy veremos una forma más integrada en WordPress de conseguir lo mismo, y también mucho más fácil.</p>
<p><span id="more-3203"></span></p>
<p>Abriremos functions.php (o lo crearemos con <a href="http://notepad-plus.sourceforge.net/">un editor de texto</a> si no lo tuviéramos, para acto seguido alojarlo junto al resto de nuestros archivos del template) y pegaremos en él el siguiente código :</p>
<pre>
function tweetmeme(){
return '&lt;div class=&quot;tweetmeme&quot;&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://tweetmeme.com/i/scripts/button.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;';
}
add_shortcode('tweet', 'tweetmeme');
</pre>
<p>Podremos manejar el posicionamiento del botón con la clase <em>class=&#8221;tweetmeme&#8221;</em> en nuestra hoja de estilos CSS :</p>
<pre>
.tweetmeme{float:left;margin:20px}
</pre>
<p>Luego no tendremos más que añadir el siguiente <em>shortcode</em> a nuestros artículos, que será reemplazado por un botón (ya estilizado y bastante bonito) de Re-Tweet, cortesía de <a href="http://tweetmeme.com/">Tweetmeme.com</a>:</p>
<pre>
[tweet]
</pre>
<p>Esperamos que os saquéis una cuenta en Twitter si no la tenéis, y que mezcléis artículos y <em>tweets</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/agregar-un-boton-para-re-twittear-un-articulo-facilmente/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Loop: obtener etiquetas con get_posts</title>
		<link>http://www.todowp.org/loop-obtener-etiquetas-con-get-posts/</link>
		<comments>http://www.todowp.org/loop-obtener-etiquetas-con-get-posts/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 19:00:32 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Etiquetas]]></category>
		<category><![CDATA[Tags]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3178</guid>
		<description><![CDATA[Cuando en WordPress nos interesa tener varios loops en una página (por ejemplo, para mostrar varias columnas, una por categoría), una de las más fáciles maneras de conseguirlo es con get_posts: &#60;?php $posts = get_posts('category=vinos-blancos&#38;numberposts=1'); foreach($posts as $post): setup_postdata($post); ?&#62; &#60;?php the_title(); ?&#62; &#60;?php the_content(); ?&#62; &#60;?php endforeach; ?&#62; En este ejemplo, estamos convocando a [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando en WordPress nos interesa tener varios <em>loops</em> en una página (por ejemplo, para mostrar varias columnas, una por categoría), una de las más fáciles maneras de conseguirlo es con <em>get_posts</em>:</p>
<pre>
&lt;?php
$posts = get_posts('category=vinos-blancos&amp;numberposts=1');
foreach($posts as $post):
setup_postdata($post);
?&gt;
&lt;?php the_title(); ?&gt;
&lt;?php the_content(); ?&gt;
&lt;?php endforeach; ?&gt;
</pre>
<p>En este ejemplo, estamos convocando a un artículo (numberposts=1), el último artículo que hayamos escrito de hecho, dentro de la categoría &quot;Vinos Blancos&quot;.</p>
<p><span id="more-3178"></span></p>
<p>Sucesivamente, en cada columna de nuestro index.php donde quisiéramos que ello ocurriera podríamos cambiar la categoría por una nueva, y disponer así de cuatro o cinco columnas por categoría (siguiendo el ejemplo: vinos blancos, vinos tintos, vinos rosados, champagne, licores&#8230;).</p>
<p>Si quisiéramos, sin embargo, disponer además de las etiquetas; por ejemplo, &quot;afrutado&quot;, &quot;seco&quot;, &quot;fuerte&quot;, deberemos realizar un añadido especial en nuestro <em>loop</em>:</p>
<pre>
&lt;?php
$posts = get_posts('category=4&amp;numberposts=1');
foreach($posts as $post):
setup_postdata($post);
?&gt;

&lt;?php the_title(); ?&gt;
&lt;?php the_content(); ?&gt;

&lt;?php $posttags = get_the_tags($post-&gt;ID); if ($posttags) {
foreach($posttags as $tag) {
echo '&lt;a href=&quot;';
echo get_tag_link($tag);
echo '&quot;&gt;';
echo $tag-&gt;name . ' ';
echo '&lt;/a&gt;';
}
}
?&gt;
&lt;?php endforeach; ?&gt;
</pre>
<p>Como <em>get_posts</em> es un tipo de <em>loop</em> más sencillo que el normal de WordPress, necesitaremos especificar la ID numérica de cada post ($post-&gt;ID) para que WordPress nos dé, además de título y contenido, las etiquetas correspondientes enlazadas a sus archivos de etiqueta como en este caso.</p>
<p>Esperamos que este truco os sea útil y vuestros comentarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/loop-obtener-etiquetas-con-get-posts/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Numerar comentarios</title>
		<link>http://www.todowp.org/numerar-comentarios/</link>
		<comments>http://www.todowp.org/numerar-comentarios/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 19:00:17 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Comentarios]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3229</guid>
		<description><![CDATA[Si nuestro blog recibe periódicamente bastantes comentarios, siempre es útil poder numerarlos para distinguirlos y hacer referencia a ellos rápidamente a medida que el debate avanza. Para ello, abriremos comments.php en nuestro tema de WordPress y localizaremos el siguiente tag: &#60;?php foreach ($comments as $comment) : ?&#62; Justo después de esta línea, iniciaremos el conteo [...]]]></description>
			<content:encoded><![CDATA[<p>Si nuestro blog recibe periódicamente bastantes comentarios, siempre es útil poder numerarlos para distinguirlos y hacer referencia a ellos rápidamente a medida que el debate avanza.</p>
<p>Para ello, abriremos comments.php en nuestro tema de WordPress y localizaremos el siguiente tag:</p>
<pre>
&lt;?php foreach ($comments as $comment) : ?&gt;
</pre>
<p>Justo después de esta línea, iniciaremos el conteo de elementos (comentarios en este caso):</p>
<pre>
&lt;?php $i = 0; ?&gt;
</pre>
<p>E inmediatamente después añadiremos el incremento de elementos:</p>
<pre>
&lt;?php $i++; ?&gt;
</pre>
<p>A partir de aquí, tan sólo tenemos que mostrar el resultado de la operación allí donde nos convenga en el template con este tag de PHP:</p>
<pre>
&lt;?php echo $i; ?&gt;
</pre>
<p>Ya tendremos nuestros comentarios numerados. ¡No dudéis en comentar!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/numerar-comentarios/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Comprimir nuestro HTML</title>
		<link>http://www.todowp.org/comprimir-nuestro-html/</link>
		<comments>http://www.todowp.org/comprimir-nuestro-html/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 19:00:15 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Compresión]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zlib]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=3193</guid>
		<description><![CDATA[WordPress, por defecto, envía al ordenador del usuario nuestro site en HTML descomprimido. Es decir, tal cual, de modo que el navegador de nuestros visitantes debe realizar algo más de trabajo que si nuestro HTML estuviera totalmente compactado. Usando zlib, una librería nativa de PHP, podremos comprimir los archivos que enviemos de forma notable y [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress, por defecto, envía al ordenador del usuario nuestro site en HTML descomprimido. Es decir, tal cual, de modo que el navegador de nuestros visitantes debe realizar algo más de trabajo que si nuestro HTML estuviera totalmente compactado.</p>
<p>Usando <a href="http://php.net/manual/en/book.zlib.php"><em>zlib</em></a>, una librería nativa de PHP, podremos comprimir los archivos que enviemos de forma notable y con ello dar más potencia y rapidez a nuestro site.</p>
<p>Para ello, vamos primero a hacer un test y comprobar que nuestro servidor tiene instalado el módulo de <em>zlib</em> para nosotros: creamos un archivo llamado index.php y pegamos en él lo siguiente:</p>
<pre>
&lt;? php phpinfo (); ?&gt;
</pre>
<p>Recordemos quitar el espacio en la apertura del php, añadido aquí a efectos de muestra. Luego lo subimos a una nueva carpeta en nuestro host llamada /test-zlib, y apuntamos nuestro navegador hasta dicho archivo, para ver si nuestra configuración tiene disponible <em>zlib</em> o no.</p>
<p><span id="more-3193"></span></p>
<p>Si es el caso, iremos al header.php de nuestro tema en uso y pegaremos, antes del DOCTYPE (inicio del HTML), lo siguiente :</p>
<pre>
&lt;? php
ini_set ('zlib.output_compression', 'On') ;
ini_set ('zlib.output_compression_level', '1') ;
?&gt;
</pre>
<p>Guardamos y regresamos a nuestro site. Ahora deberíamos poder disfrutar de nuestro HTML &#8216;comprimido&#8217; de más rápida carga.</p>
<p>Si queréis verificar con detalle cuánto ancho de banda nos ahorra este truco, podréis hacer la comparación por ejemplo en: <a href="http://www.port80software.com/">http://www.port80software.com</a></p>
<p>Esperamos vuestros comentarios comentarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/comprimir-nuestro-html/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Loop: mostrar imágenes por cada categoría</title>
		<link>http://www.todowp.org/loop-mostrar-imagenes-por-cada-categoria/</link>
		<comments>http://www.todowp.org/loop-mostrar-imagenes-por-cada-categoria/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 19:00:55 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Categorías]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=2983</guid>
		<description><![CDATA[Siempre me he preguntado si en WP se podría conseguir lo que ciertos sites hacen: mostrar una imagen representando a una cierta categoría al lado del nombre, o bien simplemente sustituyéndolo. Hoy veremos un sencillo código que nos permitirá recuperar una imagen por categoría a la que el artículo haya sido asignado, y ello ya [...]]]></description>
			<content:encoded><![CDATA[<p>Siempre me he preguntado si en WP se podría conseguir lo que ciertos sites hacen: mostrar una imagen representando a una cierta categoría al lado del nombre, o bien simplemente sustituyéndolo.</p>
<p>Hoy veremos un sencillo código que nos permitirá recuperar una imagen por categoría a la que el artículo haya sido asignado, y ello ya sea en el índice de nuestro site o en la página single.php de la entrada.</p>
<p>Antes de nada debemos contar las categorías de nuestro site y hacernos con una imagen para cada una de ellas, preferiblemente en formato .png, aunque podremos usar cualquier otro formato (en el código que os propongo se usarán PNGs).</p>
<p><span id="more-2983"></span></p>
<p>Una vez tengamos esas imágenes, hay que nombrarlas coherentemente a las categorías que representarán y emplazarlas en un directorio dentro de las imágenes de nuestro tema en uso.  Por ejemplo, para la ocasión, &#8220;<strong>cat-icons</strong>&#8221; dentro de &#8220;<strong>images</strong>&#8220;.</p>
<p>Cuando estén allí, abriremos el archivo con el <em>loop</em> en el que queramos que cada artículo muestre las categorías a las que pertenece y pegaremos el siguiente código, sustituyendo a <em>the_category</em>:</p>
<pre>
&lt;h3&gt;Artículo categorizado en :&lt;/h3&gt;
&lt;ul&gt;
	&lt;?php foreach((get_the_category()) as $cat)
	{
	$catname =$cat-&gt;category_nicename;
	echo '&lt;li&gt;&lt;a href=&quot;' . bloginfo('url');
	echo '/category/';
	echo $catname;
	echo '&quot;&gt;';
	echo '&lt;img src=&quot;' . bloginfo('template_directory');
	echo '/images/cat-icons/';
	echo $catname;
	echo &quot;.png\&quot; alt=\&quot;$catname\&quot; border=\&quot;0\&quot; /&gt;&quot;;
	echo $catname;
	echo &quot;&lt;/a&gt;&lt;/li&gt;\n&quot;;
	}
	?&gt;
&lt;/ul&gt;
</pre>
<p>Guardaremos y cerraremos, y nos aseguraremos entonces de que nuestra estructura de &#8220;permalinks&#8221; o enlaces permanentes es cualquier otra distinta a la que viene por defecto. Podemos escoger, por ejemplo, la segunda opción que se nos presenta.</p>
<p>Con esto ya tendremos iconos específicos para nuestras categorías. Esperamos vuestros comentarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/loop-mostrar-imagenes-por-cada-categoria/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Deshabilitar el mensaje de actualización de WordPress</title>
		<link>http://www.todowp.org/deshabilitar-el-mensaje-de-actualizacion-de-wordpress/</link>
		<comments>http://www.todowp.org/deshabilitar-el-mensaje-de-actualizacion-de-wordpress/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 19:00:37 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Actualización]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=2975</guid>
		<description><![CDATA[Nuestro escritorio nos da un mensaje cada vez que una nueva versión de WordPress es lanzada, con tal de que actualicemos la nuestra y estemos preparados para protegernos de los últimas vulnerabilidades o bugs que WP haya podido sufrir. Sin embargo, cuando el site que gestionamos pertenece a un amigo / familiar / cliente, a [...]]]></description>
			<content:encoded><![CDATA[<p>Nuestro escritorio nos da un mensaje cada vez que una nueva versión de WordPress es lanzada, con tal de que actualicemos la nuestra y estemos preparados para protegernos de los últimas vulnerabilidades o <em>bugs</em> que WP haya podido sufrir.</p>
<p>Sin embargo, cuando el site que gestionamos pertenece a un amigo / familiar / cliente, a veces podemos considerar que será mejor que no interactúe con el sistema de actualizaciones, del que nos encargaríamos por nuestra cuenta al saber que una nueva versión está disponible.</p>
<p>Para desactivar la alerta de <em>upgrade</em>, abriremos functions.php y pegaremos el siguiente código:</p>
<pre>
if (!current_user_can('edit_users')) {
  add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
  add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
}
</pre>
<p>El código deberá quedar entre los tags de apertura y cierre de php, como siempre.</p>
<p><span id="more-2975"></span></p>
<p>Recordemos, sin embargo, que actualizar nuestras versiones de WP es siempre fundamental, porque no sólo nos dotamos de las últimas mejoras de nuestra plataforma favorita sino que nos protegemos de los últimos ataques o fallos registrados.</p>
<p>Este pequeño truco sólo debería ser usado con clientes que se desorienten fácilmente, y siempre y cuando estemos allí para realizar el <em>upgrade</em> nosotros mismos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/deshabilitar-el-mensaje-de-actualizacion-de-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Home: ciertos títulos de post, enlazando directamente a otros sites</title>
		<link>http://www.todowp.org/home-ciertos-titulos-de-post-enlazando-directamente-a-otros-sites/</link>
		<comments>http://www.todowp.org/home-ciertos-titulos-de-post-enlazando-directamente-a-otros-sites/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 19:00:55 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[Index]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=2977</guid>
		<description><![CDATA[A veces nos puede gustar la idea de que ciertos artículos, por ejemplo aquellos con un determinado campo personalizado que les hayamos añadido, enlacen directamente a un site externo al nuestro (en vez de ir a la pantalla de texto completo). Para ello, tendremos que abrir functions.php y pegar allí el siguiente código: function print_post_title() [...]]]></description>
			<content:encoded><![CDATA[<p>A veces nos puede gustar la idea de que ciertos artículos, por ejemplo aquellos con un determinado campo personalizado que les hayamos añadido, enlacen directamente a un site externo al nuestro (en vez de ir a la pantalla de texto completo).</p>
<p>Para ello, tendremos que abrir functions.php y pegar allí el siguiente código:</p>
<pre>
function print_post_title() {
	global $post;
	$thePostID = $post-&gt;ID;
	$post_id = get_post($thePostID);
	$title = $post_id-&gt;post_title;
	$perm = get_permalink($post_id);
	$post_keys = array(); $post_val = array();
	$post_keys = get_post_custom_keys($thePostID);

	if (!empty($post_keys)) {
		foreach ($post_keys as $pkey) {
			if ($pkey=='url1' || $pkey=='title_url' || $pkey=='url_title') {
			$post_val = get_post_custom_values($pkey);
			}
		}
		if (empty($post_val)) {
			$link = $perm;
		} else {
			$link = $post_val[0];
		}

	} else {
		$link = $perm;
	}
	echo '&lt;h2&gt;&lt;a href=&quot;'.$link.'&quot; rel=&quot;bookmark&quot; title=&quot;'.$title.'&quot;&gt;'.$title.'&lt;/a&gt;&lt;/h2&gt;';
}
</pre>
<p><span id="more-2977"></span></p>
<p>Salvaremos y cerraremos. Iremos ahora al index.php de nuestro tema, lo abriremos y sustituiremos allí donde se encuentre el título&#8230;</p>
<pre>
&lt;h2&gt;&lt;a href=&quot;&lt;?php the_permalink() ?&gt;&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link to &lt;?php the_title(); ?&gt;&quot;&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/h2&gt;
</pre>
<p>&#8230;por nuestro nuevo tag, recién creado en functions.php :</p>
<pre>
&lt;?php print_post_title() ?&gt;
</pre>
<p>Salvamos y cerramos.</p>
<p>A partir de aquí, cada vez que queramos que el post (que seguramente no consistirá más que en un título) enlace directamente a un sitio externo, iremos a los campos personalizados y entraremos en &#8220;<strong>nombre</strong>&#8221; lo siguiente:</p>
<pre>
ulr1
</pre>
<p>Y en &#8220;<strong>valor</strong>&#8220;, la dirección final a la que queremos que el título del artículo enlace.</p>
<p>Siempre que no escribamos este campo personalizado, el título actuará como siempre, normalmente llevándonos a la versión entera del artículo.</p>
<p>Esperamos que este truco sea de vuestro interés.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/home-ciertos-titulos-de-post-enlazando-directamente-a-otros-sites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Todas nuestras etiquetas en una lista desplegable</title>
		<link>http://www.todowp.org/todas-nuestras-etiquetas-en-una-lista-desplegable/</link>
		<comments>http://www.todowp.org/todas-nuestras-etiquetas-en-una-lista-desplegable/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 19:00:14 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Etiquetas]]></category>
		<category><![CDATA[Tags]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=2980</guid>
		<description><![CDATA[Si no tenemos un número excesivo de etiquetas y las quisiéramos desplegar en una lista, aquí tenemos el código para realizarlo. Primero, iremos a functions.php o lo crearemos como simple archivo de texto y pegaremos en su interior el siguiente código: &#60;?php function dropdown_tag_cloud( $args = '' ) { $defaults = array( 'smallest' =&#62; 8, [...]]]></description>
			<content:encoded><![CDATA[<p>Si no tenemos un número excesivo de etiquetas y las quisiéramos desplegar en una lista, aquí tenemos el código para realizarlo.</p>
<p>Primero, iremos a functions.php o lo crearemos como simple archivo de texto y pegaremos en su interior el siguiente código:</p>
<pre>
&lt;?php
function dropdown_tag_cloud( $args = '' ) {
$defaults = array(
'smallest' =&gt; 8, 'largest' =&gt; 22, 'unit' =&gt; 'pt', 'number' =&gt; 45,
'format' =&gt; 'flat', 'orderby' =&gt; 'name', 'order' =&gt; 'ASC',
'exclude' =&gt; '', 'include' =&gt; ''
);
$args = wp_parse_args( $args, $defaults );

$tags = get_tags( array_merge($args, array('orderby' =&gt; 'count', 'order' =&gt; 'DESC')) ); // Always query top tags

if ( empty($tags) )
return;

$return = dropdown_generate_tag_cloud( $tags, $args ); // Here's where those top tags get sorted according to $args
if ( is_wp_error( $return ) )
return false;
else
echo apply_filters( 'dropdown_tag_cloud', $return, $args );
}

function dropdown_generate_tag_cloud( $tags, $args = '' ) {
global $wp_rewrite;
$defaults = array(
'smallest' =&gt; 8, 'largest' =&gt; 22, 'unit' =&gt; 'pt', 'number' =&gt; 45,
'format' =&gt; 'flat', 'orderby' =&gt; 'name', 'order' =&gt; 'ASC'
);
$args = wp_parse_args( $args, $defaults );
extract($args);

if ( !$tags )
return;
$counts = $tag_links = array();
foreach ( (array) $tags as $tag ) {
$counts[$tag-&gt;name] = $tag-&gt;count;
$tag_links[$tag-&gt;name] = get_tag_link( $tag-&gt;term_id );
if ( is_wp_error( $tag_links[$tag-&gt;name] ) )
return $tag_links[$tag-&gt;name];
$tag_ids[$tag-&gt;name] = $tag-&gt;term_id;
}

$min_count = min($counts);
$spread = max($counts) - $min_count;
if ( $spread &lt;= 0 )
$spread = 1;
$font_spread = $largest - $smallest;
if ( $font_spread &lt;= 0 )
$font_spread = 1;
$font_step = $font_spread / $spread;

// SQL cannot save you; this is a second (potentially different) sort on a subset of data.
if ( 'name' == $orderby )
uksort($counts, 'strnatcasecmp');
else
asort($counts);

if ( 'DESC' == $order )
$counts = array_reverse( $counts, true );

$a = array();

$rel = ( is_object($wp_rewrite) &amp;&amp; $wp_rewrite-&gt;using_permalinks() ) ? ' rel=&quot;tag&quot;' : '';

foreach ( $counts as $tag =&gt; $count ) {
$tag_id = $tag_ids[$tag];
$tag_link = clean_url($tag_links[$tag]);
$tag = str_replace(' ', '&amp;nbsp;', wp_specialchars( $tag ));
$a[] = &quot;\t&lt;option value='$tag_link'&gt;$tag ($count)&lt;/option&gt;&quot;;
}

switch ( $format ) :
case 'array' :
$return =&amp; $a;
break;
case 'list' :
$return = &quot;&lt;ul class='wp-tag-cloud'&gt;\n\t&lt;li&gt;&quot;;
$return .= join(&quot;&lt;/li&gt;\n\t&lt;li&gt;&quot;, $a);
$return .= &quot;&lt;/li&gt;\n&lt;/ul&gt;\n&quot;;
break;
default :
$return = join(&quot;\n&quot;, $a);
break;
endswitch;

return apply_filters( 'dropdown_generate_tag_cloud', $return, $tags, $args );
}
?&gt;
</pre>
<p>Acto seguido, iremos al template en el que nos interese insertar la lista desplegable y, orientándonos entre el HTML, pegaremos el siguiente código:</p>
<pre>
&lt;select name=&quot;tag-dropdown&quot; onchange=&quot;document.location.href=this.options[this.selectedIndex].value;&quot;&gt;
&lt;option value=&quot;#&quot;&gt;Tags&lt;/option&gt;
&lt;?php dropdown_tag_cloud('number=0&amp;order=asc'); ?&gt;
&lt;/select&gt;
</pre>
<p>Nuestros tags seran ahora mostradis en un desplegable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/todas-nuestras-etiquetas-en-una-lista-desplegable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.9 y la función Post Image</title>
		<link>http://www.todowp.org/wordpress-2-9-y-la-funcion-post-image/</link>
		<comments>http://www.todowp.org/wordpress-2-9-y-la-funcion-post-image/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 19:00:47 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Miniaturas]]></category>
		<category><![CDATA[Post Image]]></category>
		<category><![CDATA[Thumbnails]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=2925</guid>
		<description><![CDATA[Al fin, con WordPress 2.9 se nos ha hecho mucho más fácil indicar, mientras escribimos, cuál será la miniatura (o thumbnail) que representará al artículo en cuestión. Para ello, colaremos este código en functions.php (al final de todo): &#60;?php add_theme_support( 'post-thumbnails' ); ?&#62; Ahora podremos, desde la Administración, subir y asignar una imagen cuya función [...]]]></description>
			<content:encoded><![CDATA[<p>Al fin, con WordPress 2.9 se nos ha hecho mucho más fácil indicar, mientras escribimos, cuál será la miniatura (o <em>thumbnail</em>) que representará al artículo en cuestión.</p>
<p>Para ello, colaremos este código en functions.php (al final de todo):</p>
<pre>
&lt;?php
add_theme_support( 'post-thumbnails' );
?&gt;
</pre>
<p>Ahora podremos, desde la Administración, subir y asignar una imagen cuya función exclusiva será la de &#8216;representar&#8217; al post, e &#8220;imprimirse&#8221; por tanto en nuestros templates, al lado del texto del artículo (pero independientemente de éste).</p>
<p><span id="more-2925"></span></p>
<p>Iremos ahora a escoger en qué lugar concreto queremos que aparezca con respecto al contenido normal de nuestro artículo. Abriremos index.php, archive.php o incluso single.php, y allí donde creamos conveniente (normalmente al lado del extracto), pondremos lo siguiente :</p>
<pre>
&lt;?php the_post_thumbnail( 'medium' ); ?&gt;
</pre>
<p>Podremos utilizar la siguiente &#8220;jerga&#8221; para decidir qué tamaño queremos:</p>
<p>- thumbnail<br />
- medium<br />
- large</p>
<p>Habrá que orientarse entre los tags de HTML del template para poner la imagen allí donde creamos correcto.</p>
<p>Para saber más detalles acerca de esta novedad, podemos dirigirnos a la web de <a href="http://justintadlock.com/archives/2009/11/16/everything-you-need-to-know-about-wordpress-2-9s-post-image-feature">Justin Tadlock</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/wordpress-2-9-y-la-funcion-post-image/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Excluir cierta categoría al listar las categorías a las que pertenece un post</title>
		<link>http://www.todowp.org/excluir-cierta-categoria-al-listar-las-categorias-a-las-que-pertenece-un-post/</link>
		<comments>http://www.todowp.org/excluir-cierta-categoria-al-listar-las-categorias-a-las-que-pertenece-un-post/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 19:00:34 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Categorías]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=2929</guid>
		<description><![CDATA[Vamos a mostrar hoy un simple bloque de código muy útil para cuando usemos ciertas categorías con fines exclusivamente administrativos y no quisiéramos que se muestren al público siempre que listamos las categorías a las que un artículo pertenece. El código es el siguiente, y lo tenemos que insertar dentro del Loop, en single.php, index.php [...]]]></description>
			<content:encoded><![CDATA[<p>Vamos a mostrar hoy un simple bloque de código muy útil para cuando usemos ciertas categorías con fines exclusivamente administrativos y no quisiéramos que se muestren al público siempre que listamos las categorías a las que un artículo pertenece.</p>
<p>El código es el siguiente, y lo tenemos que insertar dentro del Loop, en single.php, index.php y archive.php principalmente:</p>
<pre>
Clasificado en : &lt;?php
foreach((get_the_category()) as $category) {
if ($category-&gt;cat_ID != '5') {
echo '&lt;a href=&quot;' . get_category_link( $category-&gt;term_id ) . '&quot; title=&quot;' . sprintf( __( &quot;View all posts in %s&quot; ), $category-&gt;name ) . '&quot; ' . '&gt;' . $category-&gt;name.'&lt;/a&gt; ';
}
}
?&gt;
</pre>
<p>En vez de usar el típico the_category, lo sustituiremos con este código.</p>
<p><span id="more-2929"></span></p>
<p>Si os fijáis en la tercera línea, es allí donde debemos especificar el número de la categoría a esconder.</p>
<p>Ese número podremos saberlo pasando el cursor por encima de las distintas categorías en su espacio específico en nuestra Administración y fijándonos en la URL que tienen asignada: el número al final de ésta es el que nos interesa.</p>
<p>Esperamos que este truco sea de vuestra utilidad.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/excluir-cierta-categoria-al-listar-las-categorias-a-las-que-pertenece-un-post/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Creación de menús usando las páginas estáticas</title>
		<link>http://www.todowp.org/creacion-de-menus-usando-las-paginas-estaticas/</link>
		<comments>http://www.todowp.org/creacion-de-menus-usando-las-paginas-estaticas/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 19:00:53 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Menú]]></category>
		<category><![CDATA[Páginas]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=2960</guid>
		<description><![CDATA[En WordPress disponemos de un &#8220;template tag&#8221; muy útil cuando estamos creando un tema y necesitamos listar nuestras páginas estáticas como parte o totalidad del menú del encabezado de nuestro site. En vez de crear la lista manualmente (y tener que editarla más tarde en los templates ante cualquier cambio), podremos desde un principio usar [...]]]></description>
			<content:encoded><![CDATA[<p>En WordPress disponemos de un &#8220;template tag&#8221; muy útil cuando estamos creando un tema y necesitamos listar nuestras páginas estáticas como parte o totalidad del menú del encabezado de nuestro site.</p>
<p>En vez de crear la lista manualmente (y tener que editarla más tarde en los templates ante cualquier cambio), podremos desde un principio usar <a href="http://codex.wordpress.org/Template_Tags/wp_page_menu">wp_page_menu</a> como método para imprimir nuestra lista de páginas:</p>
<pre>
&lt;?php wp_page_menu('exclude=24,27,28&amp;menu_class=menu menu-de-contacto'); ?&gt;
&lt;?php wp_page_menu('include=24,27,28&amp;menu_class=menu menu-principal'); ?&gt;
</pre>
<p>Aquí se nos crearían por lo pronto dos menús con sus links preparados: el primero incluye todas nuestras páginas salvo tres, y el segundo sólo esas tres páginas. Podríamos usarlos de distinta manera, por ejemplo, uno que ocupara el 100% de la anchura de la página, y otro, más arriba, al lado de nuestro logo.</p>
<p><span id="more-2960"></span></p>
<p>HTML de ejemplo:</p>
<pre>
&lt;div id=&quot;encabezado&quot;&gt;

	&lt;div id=&quot;logo&quot;&gt;
		&lt;img src=&quot;&lt;?php bloginfo('template_directory'); ?&gt;/imagenes/logo.png&quot;&gt;
	&lt;/div&gt;

	&lt;div id=&quot;menu-de-contacto&quot;&gt;
		&lt;?php wp_page_menu('include=24,27,28&amp;menu_class=menu menu-de-contacto'); ?&gt;
	&lt;/div&gt;

	&lt;div id=&quot;menu-principal&quot;&gt;
		&lt;?php wp_page_menu('exclude=24,27,28&amp;menu_class=menu menu-principal'); ?&gt;
	&lt;/div&gt;

&lt;/div&gt;
</pre>
<p>Recordemos que la ID numérica de cada página la sabremos poniendo el cursor sobre el nombre de la página en cuestión en el panel de administración, y viendo cuál es el número que llevan en su URL.</p>
<p>Ambos <em>template tags</em> nos devolverán una lista (ul, <em>unordered list</em>), que deberemos luego trabajar con CSS para posicionarla y crear los gráficos necesarios.</p>
<p>Un ejemplo de CSS para nuestro caso:</p>
<pre>
#encabezado{
	width:960px;
	margin: 0 auto;
	background:#fff
	}

#logo,#menu-de-contacto{
	width:50%;
	height:120px;
	margin-top:18px;
	float:left
	}

#menu-de-contacto li{
	list-style-type:none;
	display:inline;
	margin-right:18px;
	}

#menu-de-contacto li a{
	padding:5px;
	background:#EEE;
	color:#999
	}

#menu-principal{
	width:100%;
	height:3em;
	line-height:3em;
	margin-top:18px;
	color:#555
	}

#menu-principal li{
	list-style-type:none;
	display:inline-block;
	background:#111;
	padding: 0 9px;
	border-right: 1px solid #555
	}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/creacion-de-menus-usando-las-paginas-estaticas/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dar estilo a la información sobre el autor de una entrada al final de ésta</title>
		<link>http://www.todowp.org/dar-estilo-a-la-informacion-sobre-el-autor-de-una-entrada-al-final-de-esta/</link>
		<comments>http://www.todowp.org/dar-estilo-a-la-informacion-sobre-el-autor-de-una-entrada-al-final-de-esta/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 19:00:33 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Autor]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=2965</guid>
		<description><![CDATA[Habitualmente encontramos sites donde al final del post se muestra una caja con información sobre el autor: su imagen (Gravatar), su nombre, una pequeña reseña biográfica&#8230; así como, por ejemplo, la cantidad de artículos que ese autor haya publicado en el site. Hoy veremos la forma de mostrar todo ello, y proporcionaremos algunos estilos en [...]]]></description>
			<content:encoded><![CDATA[<p>Habitualmente encontramos sites donde al final del post se muestra una caja con información sobre el autor: su imagen (<a href="http://www.gravatar.com/">Gravatar</a>), su nombre, una pequeña reseña biográfica&#8230; así como, por ejemplo, la cantidad de artículos que ese autor haya publicado en el site.</p>
<p>Hoy veremos la forma de mostrar todo ello, y proporcionaremos algunos estilos en CSS que nos ayuden a crear los nuestros propios.</p>
<p>Marcelo escribió hace un tiempo sobre el <a href="http://www.todowp.org/agregar-informacion-del-autor-en-cada-post/">tag fundamental</a> que nos traerá las informaciones de la base de datos, es decir, de la pantalla de información sobre el autor que podemos editar en la Administración de WordPress una vez estamos registrados en el site, y donde podemos rellenar los campos de &#8220;Biografía&#8221;, &#8220;URL&#8221;, &#8220;Gravatar&#8221;, e-mail, etc.</p>
<p><span id="more-2965"></span></p>
<p>Hoy trataremos pues la parte del CSS para tener el conjunto en una estructura que será fácilmente modificable. Empecemos:</p>
<pre>
&lt;div id=&quot;info-autor&quot;&gt;
	&lt;div id=&quot;imagen-autor&quot;&gt;
		&lt;a href=&quot;**Web del Autor**&quot;&gt;**Gravatar del Autor**&lt;/a&gt;
	&lt;/div&gt;
	&lt;div id=&quot;bio-del-autor&quot;&gt;
		&lt;h4&gt;Escrito por &lt;a href=&quot;**Web del Autor**&quot;&gt;**Nombre del Autor**&lt;/a&gt;&lt;/h4&gt;
		&lt;p&gt;**Descripción del Autor**&lt;/p&gt;
	&lt;/div&gt;
&lt;/div&gt;&lt;!--Infos Autor--&gt;
</pre>
<p>En el código vemos los distintos elementos que deberemos transformar en PHP para que sean efectivos.</p>
<p>Añadamos pues el PHP necesario:</p>
<pre>
&lt;div id=&quot;info-autor&quot;&gt;
	&lt;div id=&quot;imagen-autor&quot;&gt;
		&lt;a href=&quot;&lt;?php the_author_meta('user_url'); ?&gt;&quot;&gt;&lt;?php echo get_avatar( get_the_author_meta('user_email'), '80', '' ); ?&gt;&lt;/a&gt;
	&lt;/div&gt;
	&lt;div id=&quot;bio-autor&quot;&gt;
		&lt;h4&gt;Escrito por &lt;?php the_author_link(); ?&gt;&lt;/h4&gt;
		&lt;p&gt;&lt;?php the_author_meta('description'); ?&gt;&lt;/p&gt;
	&lt;/div&gt;
&lt;/div&gt;&lt;!--Info Autor--&gt;
</pre>
<p>Y preparemos ahora el CSS que dará formato al resultado final :</p>
<pre>
div#author-info {
	background: #eaeaec; padding: 10px; margin: 0 0 15px 0;
	-moz-border-radius: 8px;
	-webkit-border-radius: 8px;
	border-radius: 8px;
	overflow: auto;
}
div#author-info div#author-image {
	float: left; margin: 0 10px 5px 0; border: 5px solid #DCDCE1;
}
</pre>
<p>Tan sencillo como esto.</p>
<p>Repasemos todos los tags de PHP que hemos utilizado:</p>
<pre>
&lt;?php the_author_meta('user_url'); ?&gt;
</pre>
<p>Sirve para extraer varias porciones de información acerca del usuario (autor).</p>
<pre>
&lt;?php echo get_avatar( get_the_author_meta('user_email'), '80', '' ); ?&gt;
</pre>
<p>Sirve para extraer la imagen del autor, en función del <a href="http://www.gravatar.com/">Gravatar</a> asociado a su cuenta de correo electrónico (que debe coincidir con la registrada en WordPress).</p>
<pre>
&lt;?php the_author_link(); ?&gt;
</pre>
<p>Imprime el nombre del autor, automáticamente enlazado a su web (la que haya indicado en su perfil).</p>
<pre>
&lt;?php the_author_meta('description'); ?&gt;
</pre>
<p>Muestra la principal información biográfica.</p>
<p>Esperemos que uséis todos estos trucos y creéis unos estupendos sites multi-autor con WordPress.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/dar-estilo-a-la-informacion-sobre-el-autor-de-una-entrada-al-final-de-esta/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Agregar un botón de ReTweet a nuestros artículos</title>
		<link>http://www.todowp.org/agregar-un-boton-de-retweet-a-nuestros-articulos/</link>
		<comments>http://www.todowp.org/agregar-un-boton-de-retweet-a-nuestros-articulos/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 19:00:28 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=2934</guid>
		<description><![CDATA[Para los twitteradictos que a la vez tengan un blog, John Resig (creador de jQuery) ha escrito un magnífico script que nos permitirá añadir un botón de Re-twittea este artículo que incorporará a su vez un contador de clicks. Demo Para conseguirlo, tendremos que abrir el single.php o el index.php de nuestro tema y, dentro [...]]]></description>
			<content:encoded><![CDATA[<p>Para los <a href="http://twitter.com/">twitteradictos</a> que a la vez tengan un blog, <a href="http://ejohn.org/blog/retweet/">John Resig</a> (creador de jQuery) ha escrito un magnífico <a href="http://ejohn.org/files/retweet.js">script</a> que nos permitirá añadir un botón de <strong>Re-twittea este artículo</strong> que incorporará a su vez un <em>contador de clicks</em>.</p>
<p><a href="http://ejohn.org/blog/retweet/">Demo</a></p>
<p>Para conseguirlo, tendremos que abrir el single.php o el index.php de nuestro tema y, dentro del loop, añadir lo siguiente:</p>
<pre>
&lt;a class=&quot;retweet&quot; href=&quot;&lt;?php the_permalink(); ?&gt;&quot;&gt;
     &lt;?php the_title(); ?&gt;
&lt;/a&gt;
</pre>
<p><span id="more-2934"></span></p>
<p>Es decir, un segundo the_title (debajo del primero por ejemplo, o al final del todo del artículo, tras the_content) que esté dentro de un link con class=&#8221;retweet&#8221;.</p>
<p>Salvaremos y cerraremos, y nos dirigiremos a header.php.</p>
<p>Allí tendremos que insertar el script en cuestión, que buscará cada link con clase &#8220;retweet&#8221; y le asignará el botón de retweet, el contador y la función de conexión a Twitter.</p>
<p>Para incluir un script en header.php (dentro de los tags &#8220;head&#8221;) haremos lo siguiente :</p>
<pre>
&lt;script src=&quot;&lt;?php bloginfo('template_directory'); ?&gt;/js/retweet/retweet.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</pre>
<p>Suponiendo que dentro de nuestro tema tengamos un directorio llamado <strong>js</strong> y, dentro de él, el script de John Resig, al que nombraremos igualmente <strong>retweet.js</strong>.</p>
<p><a href="http://ejohn.org/files/retweet.js"><strong>Bajar el script (copiar/pegar, salvar y alojar en un directorio especial de nuestro tema)</strong></a>.</p>
<p>Esperamos que os sea de utilidad, y aprovechamos desde aquí para saludar a John por <a href="http://jquery.com/">jQuery</a> y este magnífico script.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/agregar-un-boton-de-retweet-a-nuestros-articulos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Índice y archivos: imprimir la primera imagen de un post</title>
		<link>http://www.todowp.org/indice-y-archivos-imprimir-la-primera-imagen-de-un-post/</link>
		<comments>http://www.todowp.org/indice-y-archivos-imprimir-la-primera-imagen-de-un-post/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 19:00:16 +0000</pubDate>
		<dc:creator>Ignacio</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Trucos]]></category>
		<category><![CDATA[Archivos]]></category>
		<category><![CDATA[Índice]]></category>

		<guid isPermaLink="false">http://www.todowp.org/?p=2791</guid>
		<description><![CDATA[Si queremos crear un índice o unos archivos donde se haga un uso extensivo de imágenes (al lado de los extractos, por ejemplo), siempre puede ser interesante hacerlo sin depender de plugins. Hoy vamos a proponeros un código que lo hará posible, y que deberemos pegar en functions.php. Se nos permitirá entonces disponer de un [...]]]></description>
			<content:encoded><![CDATA[<p>Si queremos crear un índice o unos archivos donde se haga un uso extensivo de imágenes (al lado de los extractos, por ejemplo), siempre puede ser interesante hacerlo sin depender de plugins.</p>
<p>Hoy vamos a proponeros un código que lo hará posible, y que deberemos pegar en functions.php.</p>
<p>Se nos permitirá entonces disponer de un nuevo &#8216;template tag&#8217;, que podremos usar dentro de nuestros Loops, con el que imprimir la imagen en cuestión.</p>
<p><span id="more-2791"></span></p>
<p>El código es el siguiente :</p>
<pre>
function catch_that_image() {
	global $post, $posts;
	$first_img = '';
	ob_start();
	ob_end_clean();
	$output = preg_match_all('/&lt;img.+src=[\'&quot;]([^\'&quot;]+)[\'&quot;].*&gt;/i', $post-&gt;post_content, $matches);
	$first_img = $matches [1] [0];

	if(empty($first_img)){
	$first_img = &quot;/images/default.jpg&quot;; // default image
	}
return $first_img;
}
</pre>
<p>Recordemos que este código debe ir dentro de las declaraciones de apertura y cierre de php, que ya encontraremos en nuestro functions.php, o que habrá que añadir.</p>
<p>Nos dirigiremos ahora a nuestros archivos o índice, y usaremos el siguiente template tag, que equivaldrá a la primera imagen del post:</p>
<pre>
&lt;?php echo catch_that_image(); ?&gt;
</pre>
<p>Si lo quisiéramos linkando a la página final:</p>
<pre>
&lt;a href=&quot;&lt;?php the_permalink(); ?&gt;&quot;&gt;&lt;?php echo catch_that_image(); ?&gt;&lt;/a&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.todowp.org/indice-y-archivos-imprimir-la-primera-imagen-de-un-post/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

