<?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>aNieto2K &#187; PHP</title>
	<atom:link href="http://www.anieto2k.com/category/programacion/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.anieto2k.com</link>
	<description>Desarrollo web, Wordpress, y alguna cosilla más</description>
	<lastBuildDate>Sun, 05 Feb 2012 10:15:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Pon la información del FTP en tu wp-config.php</title>
		<link>http://www.anieto2k.com/2011/01/03/pon-la-informacion-del-ftp-en-tu-wp-config-php/</link>
		<comments>http://www.anieto2k.com/2011/01/03/pon-la-informacion-del-ftp-en-tu-wp-config-php/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 09:02:00 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[hacks]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=10151</guid>
		<description><![CDATA[Generalmente cuando actualizamos un plugin o una versión de WordPress (algo que últimamente es demasiado común) podemos optar por la cómoda opción de actualizar automáticamente mediante subida directa del fichero al FTP de tu servidor. Esta opción te solucita los datos de tu servidor para poder realizar la conexión. Si has instalado una versión de [...]]]></description>
			<content:encoded><![CDATA[Generalmente cuando actualizamos un plugin o una versión de WordPress (algo que últimamente es demasiado común) podemos optar por la cómoda opción de actualizar automáticamente mediante subida directa del fichero al FTP de tu servidor. Esta opción te solucita los datos de tu servidor para poder realizar la conexión. Si has instalado una versión de WordPress a alguien que no debe tener esos datos, estás obligado a ir actualizándole tu mismo los plugins, core,...

Para evitar esto, puedes usar <a href="http://www.anieto2k.com/2008/03/23/wp-configphp-un-fichero-para-gobernarlos-a-todos/">el fichero wp-config.php, que como ya vimos hace 2 años</a>, era la piedra angular de la configuración de tu WordPress. En él podrás <a href="http://digwp.com/2010/11/ftp-in-wpconfig/">incluir los datos de tu FTP</a> para que el usuario pueda actualizar sin problemas y sobretodo para que tu puedas vivir un poco más cómodo :D
<h3>Constantes en wp-config.php</h3>
Simplemente tendremos que guardar los datos en variables globales que el propio WordPress usará cuando las necesite.
<pre><code>define('FS_METHOD', 'ftpext'); // Método usado (</code>"direct", "ssh", "ftpext", o "ftpsockets")
<code>define('FTP_BASE', '/var/www/vhosts/chriscoyier.net/httpdocs/'); // Directorio base de tu FTP
define('FTP_USER', 'username'); // Username del FTP
define('FTP_PASS', 'password'); // Password del FTP
define('FTP_HOST', 'host'); // Ruta del Host del FTP
define('FTP_SSL', false); // Activar / Desactivar SSL de la conexión al FTP</code></pre>
Estas son las básicas que tu WordPress necesita para realizar la conexión, aunque disponemos de una serie más para personalizar más aún nuestra conexión:
<pre><code>define('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/'); // Ruta absoluta del directorio wp-content/ del FTP
define('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/'); // Ruta absoluta del directorio wp-content/plugins/ del FTP
define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub'); // Ruta de las "public key" para conexiones SSH
define('FTP_PRIKEY', '/home/username/.ssh/id_rsa'); // Ruta de las "private key" para conexiones SSH
define('FS_CHMOD_DIR', (0755 &amp; ~ umask())); // Sobreescritura de permisos de directorio
define('FS_CHMOD_FILE', (0644 &amp; ~ umask())); // Sobreescritura de permisos de fichero
</code></pre>
Todo esto <a href="http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants">está definido en Codex de WordPress</a>.<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2007/07/17/%c2%bfcomo-se-filtro-la-informacion-de-ferrari-a-mclaren/" rel="bookmark" title="Permanent Link: ¿Como se filtró la información de Ferrari a McLaren?">¿Como se filtró la información de Ferrari a McLaren?</a></li><li><a href="http://www.anieto2k.com/2008/07/16/reubicar-wp-content-y-wp-configphp-con-wordpress-26/" rel="bookmark" title="Permanent Link: Reubicar wp-content y wp-config.php con WordPress 2.6">Reubicar wp-content y wp-config.php con WordPress 2.6</a></li><li><a href="http://www.anieto2k.com/2008/04/24/anade-un-grado-mas-de-seguridad-a-tu-wordpress-25/" rel="bookmark" title="Permanent Link: Añade un grado más de seguridad a tu WordPress 2.5">Añade un grado más de seguridad a tu WordPress 2.5</a></li><li><a href="http://www.anieto2k.com/2007/11/20/vuelve-bitacoras-com/" rel="bookmark" title="Permanent Link: Vuelve Bitacoras.com!!!">Vuelve Bitacoras.com!!!</a></li><li><a href="http://www.anieto2k.com/2007/12/27/moolabeler-mejora-la-informacion-de-tus-imagenes/" rel="bookmark" title="Permanent Link: mooLabeler, mejora la información de tus imagenes.">mooLabeler, mejora la información de tus imagenes.</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.179.237"><img rel="38.107.179.237" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2011/01/03/pon-la-informacion-del-ftp-en-tu-wp-config-php/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>WordPress Transients API, opciones que expiran en el tiempo</title>
		<link>http://www.anieto2k.com/2010/12/24/wordpress-transients-api-opciones-que-expieran-en-el-tiempo/</link>
		<comments>http://www.anieto2k.com/2010/12/24/wordpress-transients-api-opciones-que-expieran-en-el-tiempo/#comments</comments>
		<pubDate>Fri, 24 Dec 2010 18:20:39 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[hacks]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=10138</guid>
		<description><![CDATA[La gente de WordPress nos ofrece una API nueva para almacenar datos transitorios como hacíamos con la Options API pero especificando el tiempo que estos están disponibles. // Graba un transient set_transient($transient, $value, $expiration); // Obtenemos un transient get_transient($transient); // Borramos un transient delete_transient($transient); Básicamente se trata de una serie de funciones que nos permitirá [...]]]></description>
			<content:encoded><![CDATA[La gente de <a href="http://codex.wordpress.org/Transients_API">WordPress nos ofrece una API</a> nueva para almacenar datos transitorios como hacíamos con la <a href="http://codex.wordpress.org/Options_API">Options API</a> pero especificando el tiempo que estos están disponibles.
<pre><code><strong>// Graba un transient</strong>
set_transient($transient, $value, $expiration);

<strong>// Obtenemos un transient</strong>
get_transient($transient);

<strong>// Borramos un transient</strong>
delete_transient($transient);</code>
</pre>
Básicamente se trata de una serie de funciones que nos permitirá cachear datos en nuestras creaciones para WordPress. Una buena herramienta que nos permitirá mejorar el rendimiento de nuestras aplicaciones.
<h3>set_transient()</h3>
<ul>
	<li><strong><code>$transient</code></strong> identificador único de nuestros datos.</li>
	<li><strong><code>$value</code></strong> datos a guardar, estos datos se serializarán.</li>
	<li><strong><code>$expiration</code></strong> número de segundos que esperarán los datos en la caché.</li>
</ul>
<h4>Ejemplo:</h4>
<pre><code>set_transient('special_query_results', $special_query_results, 60*60*12);</code></pre>
<h3>get_transient()</h3>
<ul>
	<li><strong><code>$transient</code></strong> identificador único de nuestros datos.</li>
</ul>
<h4>Ejemplo:</h4>
<pre><code>$value = get_transient("codigodeejemplo");</code></pre>
<h3>delete_transient()</h3>
<ul>
	<li><strong><code>$transient</code></strong> identificador único de nuestros datos.</li>
</ul>
<h4>Ejemplo:</h4>
<pre><code>delete_transient("codigodeejemplo");</code></pre>
<h3>Ejemplo de uso</h3>
En <a href="http://wpengineer.com/2148/simple-cache-with-the-wordpress-transient-api/">WP-Engineer publican un ejemplo de sistema simple de caché con Transients API</a>. En el ejemplo, nos muestra como cachear la nube de tags como ejemplo de uso para cachear datos de nuestras plantillas.
<pre><code>$tag_cloud = get_transient( 'tag_cloud' );
if ( false === $tag_cloud || '' === $tag_cloud ){
   $args = array('echo' =&gt; false);
   $tag_cloud = wp_tag_cloud( $args );
   set_transient( 'tag_cloud', $tag_cloud, 60*60*12 );
}
echo $tag_cloud;</code></pre>
Una herramienta muy útil para suavizar el impacto de nuestros trabajos sobre la base de datos de WordPress.<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2007/08/07/accede-rapidamente-a-todas-las-opciones-de-tu-wordpress/" rel="bookmark" title="Permanent Link: Accede rápidamente a todas las opciones de tu WordPress">Accede rápidamente a todas las opciones de tu WordPress</a></li><li><a href="http://www.anieto2k.com/2012/01/29/twitterweek-2012-01-29/" rel="bookmark" title="Permanent Link: TwitterWeek &#8211; 2012-01-29">TwitterWeek &#8211; 2012-01-29</a></li><li><a href="http://www.anieto2k.com/2008/09/03/wordpress-mu-261-ha-visto-la-luz/" rel="bookmark" title="Permanent Link: WordPress MU 2.6.1 ha visto la luz">WordPress MU 2.6.1 ha visto la luz</a></li><li><a href="http://www.anieto2k.com/2008/04/20/wordpress-25-como-si-estuvieras-en-primero/" rel="bookmark" title="Permanent Link: WordPress 2.5 como si estuvieras en primero">WordPress 2.5 como si estuvieras en primero</a></li><li><a href="http://www.anieto2k.com/2006/03/07/wordpress-202/" rel="bookmark" title="Permanent Link: WordPress 2.0.2">WordPress 2.0.2</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.179.237"><img rel="38.107.179.237" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/12/24/wordpress-transients-api-opciones-que-expieran-en-el-tiempo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Convierte las rutas de tu WordPress en relativas</title>
		<link>http://www.anieto2k.com/2010/10/26/convierte-las-rutas-de-tu-wordpress-en-relativas/</link>
		<comments>http://www.anieto2k.com/2010/10/26/convierte-las-rutas-de-tu-wordpress-en-relativas/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 07:55:56 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[hacks]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=10080</guid>
		<description><![CDATA[456 Berea St publica un pequeño script para convertir las url's absolutas de nuestro WordPress en relativas. El script se basa en el uso de una expresión regular que elimina el protocolo y el dominio y nos deja la url recortada allá donde la usemos. function make_href_root_relative($input) { return preg_replace('!http(s)?://' . $_SERVER['SERVER_NAME'] . '/!', '/', [...]]]></description>
			<content:encoded><![CDATA[<a href="http://www.456bereastreet.com/archive/201010/how_to_make_wordpress_urls_root_relative/">456 Berea St publica un pequeño script para convertir las url's absolutas de nuestro WordPress en relativas</a>. El script se basa en el uso de una expresión regular que elimina el protocolo y el dominio y nos deja la url recortada allá donde la usemos.
<pre><code>function make_href_root_relative($input) {
    return preg_replace('!http(s)?://' . $_SERVER['SERVER_NAME'] . '/!', '/', $input);
}</code></pre>
Esta función nos permitirá convertir cualquier url que le pasemos como parámetro, si además usamos el filtro asociado a <code>the_permalink()</code>, esto se propagará por la aplicación y reemplazará la mayoría de url's que usen este método.
<pre><code>function root_relative_permalinks($input) {
    return make_href_root_relative($input);
}
add_filter( 'the_permalink', 'root_relative_permalinks' );</code></pre>
Una forma rápida de relativizar tus url's :D<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2007/08/14/convierte-tu-wordpress-en-un-tumblelog/" rel="bookmark" title="Permanent Link: Convierte tu WordPress en un Tumblelog">Convierte tu WordPress en un Tumblelog</a></li><li><a href="http://www.anieto2k.com/2008/09/29/ficheros-de-configuracion-dependientes-del-servidor/" rel="bookmark" title="Permanent Link: Ficheros de configuración dependientes del servidor">Ficheros de configuración dependientes del servidor</a></li><li><a href="http://www.anieto2k.com/2008/03/25/leopress-convierte-tu-wordpress-en-leopard/" rel="bookmark" title="Permanent Link: Leopress, convierte tu WordPress en Leopard">Leopress, convierte tu WordPress en Leopard</a></li><li><a href="http://www.anieto2k.com/2006/08/21/con-font-todo-sera-mas-corto/" rel="bookmark" title="Permanent Link: Con font todo será más corto.">Con font todo será más corto.</a></li><li><a href="http://www.anieto2k.com/2007/04/17/vimperator-convierte-tu-firefox-en-vim/" rel="bookmark" title="Permanent Link: Vimperator, convierte tu Firefox en VIM">Vimperator, convierte tu Firefox en VIM</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.179.237"><img rel="38.107.179.237" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/10/26/convierte-las-rutas-de-tu-wordpress-en-relativas/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Usando Shortcodes en nuestro theme</title>
		<link>http://www.anieto2k.com/2010/09/14/usando-shortcodes-en-nuestro-theme/</link>
		<comments>http://www.anieto2k.com/2010/09/14/usando-shortcodes-en-nuestro-theme/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 10:12:58 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/2010/09/14/usando-shortcodes-en-nuestro-theme/</guid>
		<description><![CDATA[Desde la versión 2.5, WordPress dispone de una funcionalidad que nos permite definir código que podrá ser ejecutado desde los artículos mediante código similares al BBCode. Esta funcionalidad la llamaron Shorcodes. Ya vimos como funcionaban los shortcodes y como implementarlos en nuestros WordPress. Ahora en WPEngineer publican una interesante artículo en el que nos explican [...]]]></description>
			<content:encoded><![CDATA[<a href="http://www.anieto2k.com/2008/03/31/shortcode-api-otra-novedad-de-wordpress-25/">Desde la versión 2.5, WordPress dispone de una funcionalidad</a> que nos permite definir código que podrá ser ejecutado desde los artículos mediante código similares al <a href="http://es.wikipedia.org/wiki/BBCode">BBCode</a>. Esta funcionalidad la llamaron Shorcodes.

Ya <a href="http://www.anieto2k.com/2009/02/04/usando-shortcodes-como-profesionales/">vimos como funcionaban los shortcodes y como implementarlos en nuestros WordPress</a>. Ahora en<a href="http://wpengineer.com/2051/use-wordpress-shortcodes-outside-the-editor/"> WPEngineer publican una interesante artículo</a> en el que nos explican como usar shortcodes en nuestros themes sin necesidad de encontrarnos dentro del contenido de los artículos.
<pre><code>&lt;?php echo do_shortcode('[myshortcode]'); ?&gt;</code></pre>
Gracias a <code><a href="http://codex.wordpress.org/Function_Reference/do_shortcode">do_shortcode()</a></code> podemos ejecutar nuestros propios shortcodes en donde queramos del código de nuestro theme. Muy útil :D<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2010/11/03/shortcode-para-crear-contenido-que-expira/" rel="bookmark" title="Permanent Link: Shortcode para crear contenido que expira">Shortcode para crear contenido que expira</a></li><li><a href="http://www.anieto2k.com/2009/05/13/ocultar-contenido-a-los-usuarios-no-registrados/" rel="bookmark" title="Permanent Link: Ocultar contenido a los usuarios no registrados">Ocultar contenido a los usuarios no registrados</a></li><li><a href="http://www.anieto2k.com/2008/04/13/shortcode-generator-para-wordpress/" rel="bookmark" title="Permanent Link: ShortCode generator para WordPress">ShortCode generator para WordPress</a></li><li><a href="http://www.anieto2k.com/2009/02/04/usando-shortcodes-como-profesionales/" rel="bookmark" title="Permanent Link: Usando Shortcodes como profesionales">Usando Shortcodes como profesionales</a></li><li><a href="http://www.anieto2k.com/2009/02/04/ejecutar-php-en-tus-posts-con-shortcodes/" rel="bookmark" title="Permanent Link: Ejecutar PHP en tus posts con shortcodes">Ejecutar PHP en tus posts con shortcodes</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.179.237"><img rel="38.107.179.237" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/09/14/usando-shortcodes-en-nuestro-theme/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>WordPress y el Fatal Memory Error</title>
		<link>http://www.anieto2k.com/2010/08/30/wordpress-y-el-fatal-memory-error/</link>
		<comments>http://www.anieto2k.com/2010/08/30/wordpress-y-el-fatal-memory-error/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 15:58:10 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/2010/08/30/wordpress-y-el-fatal-memory-error/</guid>
		<description><![CDATA[Uno de los principales problemas de WordPress es el consumo de memoria, este consumo no siempre puede reducirse y poco a poco (versión a versión) parece que la funcionalidad básica va consumiendo más memoria de nuestro sistema. Para intentar reservar más memoria disponible en nuestro sistema la gente de WeblogToolsCollection.com publica un artículo recopilatorio de [...]]]></description>
			<content:encoded><![CDATA[Uno de los principales problemas de WordPress es el consumo de memoria, este consumo no siempre puede reducirse y poco a poco (versión a versión) parece que la funcionalidad básica va consumiendo más memoria de nuestro sistema. Para intentar reservar más memoria disponible en nuestro sistema la gente de <a href="http://weblogtoolscollection.com/archives/2010/08/29/wordpress-and-the-fatal-memory-error/">WeblogToolsCollection.com publica un artículo recopilatorio</a> de soluciones al famoso <em>“Fatal error: Allowed memory size of 33554432 bytes exhausted.”</em><h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2009/09/08/reduce-el-consumo-de-memoria-de-tu-wordpress/" rel="bookmark" title="Permanent Link: Reduce el consumo de memoria de tu WordPress">Reduce el consumo de memoria de tu WordPress</a></li><li><a href="http://www.anieto2k.com/2005/12/04/problema-con-ajaxregulus/" rel="bookmark" title="Permanent Link: Problema con ajaxRegulus">Problema con ajaxRegulus</a></li><li><a href="http://www.anieto2k.com/2005/11/28/ajaxregulus-10/" rel="bookmark" title="Permanent Link: AjaxRegulus 1.0">AjaxRegulus 1.0</a></li><li><a href="http://www.anieto2k.com/2009/06/18/wp-memory-usage-y-wp-sytem-health-controla-el-estado-de-tu-wordpress/" rel="bookmark" title="Permanent Link: WP Memory Usage y WP Sytem Health, controla el estado de tu WordPress">WP Memory Usage y WP Sytem Health, controla el estado de tu WordPress</a></li><li><a href="http://www.anieto2k.com/2005/12/07/problemas-con-utf-8/" rel="bookmark" title="Permanent Link: Problemas con UTF-8">Problemas con UTF-8</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.179.237"><img rel="38.107.179.237" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/08/30/wordpress-y-el-fatal-memory-error/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress 3.0: Exprimiendo los Custom Post Types</title>
		<link>http://www.anieto2k.com/2010/06/19/wordpress-3-0-exprimiendo-los-custom-post-types/</link>
		<comments>http://www.anieto2k.com/2010/06/19/wordpress-3-0-exprimiendo-los-custom-post-types/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 11:21:11 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9949</guid>
		<description><![CDATA[Una de las funcionalidades incluidas en WordPress 3.0 es la posibilidad de definir tipos de posts personalizados. Esto que parece que ha pasado desapercibido por la comunidad de desarrolladores es realmente interesante y ofrece una gran capacidad para extender cualquier WordPress fácilmente. ¿Que son los Custom Post Types? Hasta la versión 2.9.x de WordPress disponíamos [...]]]></description>
			<content:encoded><![CDATA[Una de las funcionalidades <a href="http://www.anieto2k.com/2010/06/19/wordpress-3-0-%E2%80%9Cthelonious%E2%80%9D-por-fin-ve-la-luz/">incluidas en WordPress 3.0</a> es la posibilidad de definir tipos de posts personalizados. Esto que parece que ha pasado desapercibido por la comunidad de desarrolladores es realmente interesante y ofrece una gran capacidad para extender cualquier WordPress fácilmente.
<h3>¿Que son los Custom Post Types?</h3>
Hasta la versión 2.9.x de WordPress disponíamos de unos pocos tipos de posts disponibles para identificar nuestros artículos. Estos tipos de posts, indicaban el estado del mismo (<code>draft</code>, <code>revision</code>,...) o el tipo de usado (<code>attachment</code>, <code>page</code>,...).

Ahora con la nueva versión de WordPress, la 3.0, la posibilidad de definir tipos de posts personalizados abre un abanico de posibilidades.
<h3>¿Como definir un nuevo Custom Post Type?</h3>
La API de WordPress está muy bien documentada en <a href="http://codex.wordpress.org">WordPress Codex</a> y allí podemos <a href="http://codex.wordpress.org/Custom_Post_Types">encontrar como definir un Post Type fácilmente</a>.

Todo pasa por la función <a href="http://codex.wordpress.org/Function_Reference/register_post_type"><code>register_post_type()</code></a>, que se encarga de registrar un nuevo tipo con una serie de características personalizadas.
<pre><code>add_action( 'init', 'create_post_type' );
function create_post_type() {
  register_post_type( 'super',
    array(
      'labels' =&gt; array(
        'name' =&gt; __( 'Supers' ),
        'singular_name' =&gt; __( 'Super' )
      ),
      'public' =&gt; true,
    )
  );
}</code></pre>
Como vemos, debemos crear una función que se ejecutará en el action "<code>init</code>" de WordPress y que registrará el nuevo tipo. Disponemos de muchos parámetros que podemos usar para personalizar el nuevo tipo, pero los veremos más adelante.
<p style="text-align: center;"><a rel="lightbox" href="http://www.anieto2k.com/wp-content/uploads/2010/06/post_type_wordpress_3.jpg"><img src="http://www.anieto2k.com/wp-content/uploads/2010/06/post_type_wordpress_3-552x300.jpg" alt="post_type_wordpress_3" /></a>
<a href="http://www.anieto2k.com/wp-content/uploads/2010/06/post_type_wordpress_3.jpg"><small>(Ver Imagen)</small></a></p>
Introduciendo este código en, por ejemplo, el fichero <code>functions.php </code>de tu theme o en un plugin. Obtendremos un resultado similar al que vemos en la imagen. Se trata de un nuevo menú con el nuevo tipo registrado.

En el nuevo menú descubrimos que podemos mostrar un listado de artículos del nuevo tipo o crear uno nuevo, siempre asociado al <code>post-type</code> definido previamente.
<h3>Detalles de <code>register_post_type()</code></h3>
Los parámetros que esta función reciba condicionarán el panel de administración de nuestro nuevo post_type.
<h4>Labels</h4>
<ul>
	<li><code>name</code>: El plural del nuevo tipo (películas).</li>
	<li><code>singular_name</code>: Singular del nuevo tipo (película)</li>
	<li><code>add_new</code>: Etiqueta de "Añadir nuevo"</li>
	<li><code>add_new_item</code>: Cabecera del panel "Añadir nuevo"</li>
	<li><code>edit</code>: Etiqueta de "Editar"</li>
	<li><code>edit_item</code>: Cabecera del panel "Editar"</li>
	<li><code>new_item</code>: Muestra en el menú favoritos</li>
	<li><code>view</code>: Se utiliza como texto en un enlace para ver el post.</li>
	<li><code>view_item</code>:Se muestra junto con  el enlace permanente en la pantalla de edición posterior</li>
	<li><code>search_items</code>: Botón de texto para  el cuadro de búsqueda en la pantalla de edición de mensajes</li>
	<li><code>not_found</code>: Texto para cuando no encuentre items</li>
	<li><code>not_found_in_trash</code>:Texto para cuando no encuentre items en la papelera.</li>
	<li><code>parent</code>: Se utiliza para definir el tipo padre. Solo útil en tipos heredados.</li>
</ul>
<h4>Ejemplo</h4>
<pre><code>'labels' =&gt; array(
	'name' =&gt; __( 'Super Dupers' ),
	'singular_name' =&gt; __( 'Super Duper' ),
	'add_new' =&gt; __( 'Add New' ),
	'add_new_item' =&gt; __( 'Add New Super Duper' ),
	'edit' =&gt; __( 'Edit' ),
	'edit_item' =&gt; __( 'Edit Super Duper' ),
	'new_item' =&gt; __( 'New Super Duper' ),
	'view' =&gt; __( 'View Super Duper' ),
	'view_item' =&gt; __( 'View Super Duper' ),
	'search_items' =&gt; __( 'Search Super Dupers' ),
	'not_found' =&gt; __( 'No super dupers found' ),
	'not_found_in_trash' =&gt; __( 'No super dupers found in Trash' ),
	'parent' =&gt; __( 'Parent Super Duper' ),
),</code></pre>
<h4>description</h4>
La descripción, es usada para explicar de que trata el nuevo tipo.
<h4>Ejemplo</h4>
<pre><code>'description' =&gt; __( 'A super duper is a type of content that is the most wonderful content in the world. There are no alternatives that match how insanely creative and beautiful it is.' ),</code></pre>
<h4>public</h4>
Se trata de un parámetro que permite personalizar todo lo referente al comportamiento público del nuevo tipo. En caso de estar activo (<code>true</code>) nos permitirá usar otros parámetros para personalizar nuestro <code>post_type</code>.
<ul>
	<li><code>show_ui</code>: Mostrar en las pantallas de Administración</li>
	<li><code>publicly_queryable</code>: Permitir que las consultas por este tipo estén disponibles a los usuarios.</li>
	<li><code>exclude_from_search</code>: Eliminar de la lista de resultados de búsquedas.</li>
</ul>
<pre><code>'public' =&gt; true,
'show_ui' =&gt; true,
'publicly_queryable' =&gt; true,
'exclude_from_search' =&gt; false,</code></pre>
<h4>capability_type / capabilities</h4>
El tema de permisos es algo que también está reflejado en los Custom Post Types, permitiendo definir que capacidades tiene cada perfil de usuarios sobre el tipo.

Para ello usaremos el atributo "<code>capabilities</code>":
<ul>
	<li><code>edit_post</code>: Alguien puede crear y editar un post específico</li>
	<li><code>edit_posts</code>: Capacidad de guardar  los mensajes que permite la edición de este tipo de posts</li>
	<li><code>edit_others_posts</code>: Capacidad  que permite la edición de los posts de los demás.</li>
	<li><code>publish_posts</code>: Capacidad  de la concesión de la publicación de este tipo de posts.</li>
	<li><code>read_post</code>: Capacidad que controla la lectura de un  puesto específico de este tipo de posts.</li>
	<li><code>read_private_posts</code>: Capacidad  para permitir la lectura de los mensajes privados.</li>
	<li><code>delete_post</code>: Capacidad que otorga el privilegio de la supresión de posts.</li>
</ul>
<h4>Ejemplo</h4>
<pre><code>/* Global control over capabilities. */
'capability_type' =&gt; 'super_duper',

/* Specific control over capabilities. */
'capabilities' =&gt; array(
	'edit_post' =&gt; 'edit_super_duper',
	'edit_posts' =&gt; 'edit_super_dupers',
	'edit_others_posts' =&gt; 'edit_others_super_dupers',
	'publish_posts' =&gt; 'publish_super_dupers',
	'read_post' =&gt; 'read_super_duper',
	'read_private_posts' =&gt; 'read_private_super_dupers',
	'delete_post' =&gt; 'delete_super_duper',
),</code></pre>
<h4>supports</h4>
Permite definir que cajas van a estar visibles a la hora de crear/editar un nuevo post del tipo definido. Para ello pasaremos un listado con los nombres de las mismas.
<ul>
	<li><code>title</code>: Caja de título</li>
	<li><code>editor</code>: Editor donde va el contenido del post</li>
	<li><code>comments</code>: Posibilidad de activar/desactivar los comentarios</li>
	<li><code>trackbacks</code>: Capacidad de activar/desactivar los trackbacks</li>
	<li><code>revisions</code>: Permitir ver las revisiones</li>
	<li><code>author</code>: Caja para definir el autor</li>
	<li><code>excerpt</code>: Caja de excerpt.</li>
	<li><code>thumbnail</code>: Caja para definir la miniatura del post.</li>
	<li><code>custom-fields</code>: Caja de Custom Fields</li>
	<li><code>page-attributes</code>: Atributos de páginas</li>
</ul>
<h4>Ejemplo</h4>
<pre><code>'supports' =&gt; array( 'title', 'editor', 'excerpt', 'custom-fields', 'thumbnail' ),</code></pre>
<h4>rewrite</h4>
La URL también puede ser personalizada mediante un simple parámetro que especificará el enlace usado. Para ello debemos especificar estos parámetros:
<ul>
	<li><code>slug</code>: El prefijo del post</li>
	<li><code>with_front</code>:  Si el prefijo ha de estar en el frontend.</li>
</ul>
<h3>Más información</h3>
<ul>
	<li><a href="http://codex.wordpress.org/Custom_Post_Types">Custom Post Types &lt;&lt; WordPress Codex</a></li>
	<li><a href="http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress">Custom Post Types in WordPress</a></li>
	<li><a href="http://kovshenin.com/archives/custom-post-types-in-wordpress-3-0/">Custom Post Types in WordPress 3.0</a></li>
	<li><a href="http://kovshenin.com/archives/extending-custom-post-types-in-wordpress-3-0/">Extending Custom Post Types in WordPress 3.0</a></li>
	<li><a href="http://codex.wordpress.org/Function_Reference/register_post_type">register_post_type() &lt;&lt; WordPress Codex</a></li>
</ul>
<h3>Actualización</h3>
<ol>
	<li><a href="http://wordpress.org/extend/plugins/custom-post-type-ui/">Custom Post Types UI</a>, plugin que nos genera un cómodo interface web donde personalizar nuestros tipos de posts. <a href="http://ayudawordpress.com/custom-post-types-para-humanos/">Via</a>.</li>
	<li><a href="http://magicfields.org/">Magic Fields</a>, plugin que permite generar interfaces amigables para todas las opciones de WordPress, inlcuye la opción de Custom Post Types.Via <a href="http://ishkarioth.com/blog/">judas</a>.</li>
</ol><h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2010/06/19/wordpress-3-0-%e2%80%9cthelonious%e2%80%9d-por-fin-ve-la-luz/" rel="bookmark" title="Permanent Link: WordPress 3.0 “Thelonious” por fin ve la luz">WordPress 3.0 “Thelonious” por fin ve la luz</a></li><li><a href="http://www.anieto2k.com/2009/09/21/como-usar-los-custom-fields-en-wordpress/" rel="bookmark" title="Permanent Link: Como usar los custom fields en WordPress">Como usar los custom fields en WordPress</a></li><li><a href="http://www.anieto2k.com/2010/11/02/mime-type-javascript-soportados/" rel="bookmark" title="Permanent Link: MIME Type Javascript soportados">MIME Type Javascript soportados</a></li><li><a href="http://www.anieto2k.com/2007/06/28/haz-que-todos-tus-posts-sean-diferentes/" rel="bookmark" title="Permanent Link: Haz que todos tus posts sean diferentes">Haz que todos tus posts sean diferentes</a></li><li><a href="http://www.anieto2k.com/2009/12/02/wordpress-2-9-beta-2/" rel="bookmark" title="Permanent Link: WordPress 2.9 beta 2">WordPress 2.9 beta 2</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.179.237"><img rel="38.107.179.237" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/06/19/wordpress-3-0-exprimiendo-los-custom-post-types/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Detectando el iPad desde la web</title>
		<link>http://www.anieto2k.com/2010/04/08/detectando-el-ipad-desde-la-web/</link>
		<comments>http://www.anieto2k.com/2010/04/08/detectando-el-ipad-desde-la-web/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 06:34:26 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[ipad]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9806</guid>
		<description><![CDATA[David Walsh, publica un artículo donde nos muestra una serie de opciones, en diferentes lenguajes, para detectar el iPad desde nuestra aplicación web. Básicamente se encarga de comprobar el userAgent que el dispositivo deja impreso en las cabeceras en las que solicita la página para detectarlo y condicionar la respuesta al usuario. UserAgent Como ya [...]]]></description>
			<content:encoded><![CDATA[<strong>David Walsh</strong>, publica un artículo donde nos muestra una serie de opciones, en diferentes lenguajes, para<a href="http://davidwalsh.name/detect-ipad"> detectar el iPad desde nuestra aplicación web</a>.

Básicamente se encarga de comprobar el userAgent que el dispositivo deja impreso en las cabeceras en las que solicita la página para detectarlo y condicionar la respuesta al usuario.


<h3>UserAgent</h3>
Como ya vimos en "<a href="http://www.anieto2k.com/2010/04/03/prepara-tu-pagina-para-el-ipad/">Prepara tu página para el iPad</a>" como condicionar nuestro navegador para simular al iPad, donde usabamos este userAgent para indicarle a Safari que lo usara para solicitar las páginas web.
<pre><code>Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10</code></pre>
<h3>Javascript</h3>
Con javascript usaremos el objeto <code>navigator</code> para comprobar si la palabra iPad aparece en el <code>userAgent</code> del navegador.
<pre><code>var isiPad = navigator.userAgent.match(/iPad/i) != null;
<strong>// Uso
</strong>if (isiPad) ...</code></pre>
<h3>PHP</h3>
Haremos lo mismo desde el servidor mediante la búsqueda de la palabra iPad para la versión en PHP.
<pre><code>$isiPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPad');
<strong>// Uso
</strong>if ($isiPad)...</code></pre>
<h3>HtAccess</h3>
Quizas las versión más limpia sea la de delegar al servidor web la tarea de detectar el navegador y redireccionar a nuestra versión para iPad.
<pre><code>RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$
RewriteRule ^(.*)$ http://ipad.yourdomain.com [R=301]</code></pre>
No tenemos excusas para no<a href="http://www.anieto2k.com/2009/09/08/adapta-tu-wordpress-a-la-tecnologia-movil/"> adaptar nuestro contenido a los nuevos dispositivos móviles</a>, hagámoslo.<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2010/04/03/administra-tu-wordpress-desde-el-ipad/" rel="bookmark" title="Permanent Link: Administra tu WordPress desde el iPad">Administra tu WordPress desde el iPad</a></li><li><a href="http://www.anieto2k.com/2010/04/03/prepara-tu-pagina-para-el-ipad/" rel="bookmark" title="Permanent Link: Prepara tu página para el iPad">Prepara tu página para el iPad</a></li><li><a href="http://www.anieto2k.com/2006/09/12/detectando-el-cambio-de-tamano-de-nuestros-textos/" rel="bookmark" title="Permanent Link: Detectando el cambio de tamaño de nuestros textos">Detectando el cambio de tamaño de nuestros textos</a></li><li><a href="http://www.anieto2k.com/2009/01/12/pseudo-ajax-para-leer-ficheros-locales/" rel="bookmark" title="Permanent Link: Pseudo-ajax para leer ficheros locales">Pseudo-ajax para leer ficheros locales</a></li><li><a href="http://www.anieto2k.com/2010/08/04/twitterday-2010-08-04/" rel="bookmark" title="Permanent Link: TwitterDay &#8211; 2010-08-04">TwitterDay &#8211; 2010-08-04</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.179.237"><img rel="38.107.179.237" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/04/08/detectando-el-ipad-desde-la-web/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>LOST para desarrolladores PHP</title>
		<link>http://www.anieto2k.com/2010/02/24/lost-para-desarrolladores-php/</link>
		<comments>http://www.anieto2k.com/2010/02/24/lost-para-desarrolladores-php/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 06:56:39 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9718</guid>
		<description><![CDATA[Perdonarme por la pedazo de frikada que voy a poner ahora, pero me ha hecho gracia y no quiero ser el único que la ha sufrido :D Ojo!, Spoiler, si no has visto el capítulo 6x04 no sigas. Se trata de una visión de la escena de la cueva de los números que vimos en [...]]]></description>
			<content:encoded><![CDATA[Perdonarme por la pedazo de frikada que voy a poner ahora, pero me ha hecho gracia y no quiero ser el único que la ha sufrido :D
<p style="color: red;">Ojo!, Spoiler, si no has visto el capítulo 6x04 no sigas.</p>

Se trata de una visión de la escena de la cueva de los números que vimos en el capítulo 6x04.
<pre><code>&lt;?php
<strong> /*
 *    @author: Jackob
 @    @description: TODO: Poner una descripción
 */
</strong> $numeros = array(4,8,15,16,23,42);
 $supervivientes = array("Locke", "Reyes", "Ford", "Said", "Shepard", "Kwon");
 $candidatos = array_merge($numeros, $supervivientes);
 print_r($candidatos);

<strong> /*
 *    @author: John Locke (malo)
 *    @description: Es una broma mia
 */
</strong> $smokei = array_shift($candidatos);
?&gt;</code></pre>
Lo siento xD<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2006/07/01/generado-de-teorias-para-lost/" rel="bookmark" title="Permanent Link: Generado de teorías para LOST">Generado de teorías para LOST</a></li><li><a href="http://www.anieto2k.com/2006/09/18/lost-park-perdidos-en-south-park/" rel="bookmark" title="Permanent Link: Lost Park,&#8230; Perdidos en South Park">Lost Park,&#8230; Perdidos en South Park</a></li><li><a href="http://www.anieto2k.com/2009/04/22/lostin-acorta-y-protege-urls/" rel="bookmark" title="Permanent Link: Lost.in, acorta y protege URL&#8217;s">Lost.in, acorta y protege URL&#8217;s</a></li><li><a href="http://www.anieto2k.com/2006/09/19/south-park-studio-version-20/" rel="bookmark" title="Permanent Link: South Park Studio Version 2.0">South Park Studio Version 2.0</a></li><li><a href="http://www.anieto2k.com/2006/08/28/opera-para-desarrolladores/" rel="bookmark" title="Permanent Link: Opera para desarrolladores">Opera para desarrolladores</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.179.237"><img rel="38.107.179.237" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/02/24/lost-para-desarrolladores-php/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Deshabilitar el editor HTML de nuestro WordPress</title>
		<link>http://www.anieto2k.com/2010/01/19/deshabilitar-el-editor-html-de-nuestro-wordpress/</link>
		<comments>http://www.anieto2k.com/2010/01/19/deshabilitar-el-editor-html-de-nuestro-wordpress/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 12:30:47 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[wordpress.hacks]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9598</guid>
		<description><![CDATA[Aunque sin él yo no podría escribir mis artículos, es posible deshabilitar el editor HTML de nuestro WordPress de una forma sencilla con alguna de estas opciones: 1) CSS: La opción con más estilo (¿lo pillais? :P) Sin duda se trata de la solución más rápida y sencilla ya que simplemente tendremos que añadir un [...]]]></description>
			<content:encoded><![CDATA[Aunque sin él yo no podría escribir mis artículos, es posible <a href="http://wpengineer.com/disable-html-editor-wordpress/">deshabilitar el editor HTML de nuestro WordPress</a> de una forma sencilla con alguna de estas opciones:
<h3>1) CSS: La opción con más estilo (¿lo pillais? :P)</h3>
Sin duda se trata de la solución más rápida y sencilla ya que simplemente tendremos que añadir un estilo CSS al panel de administrador.
<pre><code><strong>// Añadir el CSS directamente
</strong>function removeHTMLEditorCSS(){
 echo '&lt;style type="text/css"&gt;#editor-toolbar #edButtonHTML, #quicktags {display: none;}&lt;/style&gt;';
}

add_action('admin_head', 'removeHTMLEditorCSS');

<strong>// Añadir un fichero CSS externo
</strong><em>fichero: removeHTMLEditor.css</em>
#editor-toolbar #edButtonHTML, #quicktags {display: none;}

wp_register_style('removeHTMLEditorCSS', '/ruta/css/removeHTMLEditor.css');
wp_enqueue_style('removeHTMLEditorCSS');</code></pre>
<h3>2) Javascript: La más rápida</h3>
Desde Javascript podemos borrar directamente el botón y no permitir usar esta opción:
<pre><code>function removeHTMLEditorJS(){
 echo 'jQuery(document).ready(function($) {
         $("#edButtonHTML").remove();
       });';
}

add_action('admin_footer', 'removeHTMLEditorJS');
</code></pre>
<h3>3) PHP: La más limpia</h3>
En las dos anteriores, aunque son efectivas, dejamos la opción de recuperar la opción directamente desde el mismo navegador, desde PHP podemos eliminar el botón dejando la opción perfectamente deshabilitada.
<pre><code>function my_default_editor() {
 $r = 'tinymce'; // html or tinymce
 return $r;
}
add_filter( 'wp_default_editor', 'my_default_editor' );

<strong>// Versión reducida
</strong>add_filter( 'wp_default_editor', create_function('', 'return "tinymce";') );</code></pre>
<h3>Conclusión</h3>
Siempre que puedas estas cosas, deberían ir en un fichero de configuración alojado en el servidor y todas las opciones son igual de válidas.<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2007/03/28/wordpress-dashboard-editor-widgets-en-tu-dashboard/" rel="bookmark" title="Permanent Link: WordPress Dashboard Editor, widgets en tu dashboard">WordPress Dashboard Editor, widgets en tu dashboard</a></li><li><a href="http://www.anieto2k.com/2007/02/08/amplia-el-editor-enriquecido-de-wordpress-21/" rel="bookmark" title="Permanent Link: Amplia el editor enriquecido de WordPress 2.1">Amplia el editor enriquecido de WordPress 2.1</a></li><li><a href="http://www.anieto2k.com/2007/07/02/ampliando-mas-las-opciones-del-editor-enriquecido-de-wordpress/" rel="bookmark" title="Permanent Link: Ampliando más las opciones del editor enriquecido de WordPress">Ampliando más las opciones del editor enriquecido de WordPress</a></li><li><a href="http://www.anieto2k.com/2009/02/21/wordpress-28-con-un-editor-de-codigo-decente/" rel="bookmark" title="Permanent Link: WordPress 2.8 con un editor de código decente">WordPress 2.8 con un editor de código decente</a></li><li><a href="http://www.anieto2k.com/2009/09/11/nueva-funcionalidad-de-wordpress-2-9-en-la-edicion-de-imagenes/" rel="bookmark" title="Permanent Link: Nueva funcionalidad de WordPress 2.9 en la edición de imágenes">Nueva funcionalidad de WordPress 2.9 en la edición de imágenes</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.179.237"><img rel="38.107.179.237" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/01/19/deshabilitar-el-editor-html-de-nuestro-wordpress/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Optimiza la frecuencia de refresco del RSS de tu WordPress</title>
		<link>http://www.anieto2k.com/2009/12/21/optimiza-la-frecuencia-de-refresco-del-rss-de-tu-wordpress/</link>
		<comments>http://www.anieto2k.com/2009/12/21/optimiza-la-frecuencia-de-refresco-del-rss-de-tu-wordpress/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 10:38:56 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[estandares]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9430</guid>
		<description><![CDATA[Un módulo del estandar RDF, concretamente el destinado sobre la frecuencia de sincronización, que este próximo año cumplirá 10 años de su aparición nos permite especificar la frecuencia con la que los agregadores de noticia deben comprobar si el feed ha cambiado. Por defecto WordPress, asume que eres una máquina y que no paras de [...]]]></description>
			<content:encoded><![CDATA[Un módulo del <a href="http://www.w3.org/RDF/">estandar RDF</a>, concretamente el destinado sobre <a href="http://web.resource.org/rss/1.0/modules/syndication/">la frecuencia de sincronización</a>, que este próximo año cumplirá 10 años de su aparición nos permite especificar la frecuencia con la que los agregadores de noticia deben comprobar si el feed ha cambiado.

Por defecto WordPress, asume que eres una máquina y que no paras de actualizar en todo el día:
<pre><code>&lt;sy:updatePeriod&gt;hourly&lt;/sy:updatePeriod&gt;
&lt;sy:updateFrequency&gt;1&lt;/sy:updateFrequency&gt;</code></pre>
<a href="http://www.anieto2k.com/2009/05/22/%C2%BFcomo-y-donde-puedo-extender-wordpress/">WordPress nos añade dos filtros</a> para modificar esta frecuencia a nuestro gusto. Para ello bastará con incluir estas líneas en el fichero functions.php de nuestro theme para conseguir una frecuencia de sincronización de 4 veces al día.
<pre><code>add_filter( 'rss_update_period',    create_function( '', 'return "daily";' ) );
add_filter( 'rss_update_frequency', create_function( '', 'return 4;' ) );</code></pre>
<a href="http://wpengineer.com/optimize-syndication-frequenzy/">Via</a><h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2007/01/03/disena-para-la-wii/" rel="bookmark" title="Permanent Link: Diseña para la Wii">Diseña para la Wii</a></li><li><a href="http://www.anieto2k.com/2008/12/23/optimiza-el-css-sin-usar-php/" rel="bookmark" title="Permanent Link: Optimiza el CSS sin usar PHP">Optimiza el CSS sin usar PHP</a></li><li><a href="http://www.anieto2k.com/2007/07/29/optimiza-tu-tag-title-para-mejorar-el-seo-de-tu-wordpress/" rel="bookmark" title="Permanent Link: Optimiza tu tag title para mejorar el SEO de tu WordPress">Optimiza tu tag title para mejorar el SEO de tu WordPress</a></li><li><a href="http://www.anieto2k.com/2006/12/24/wordpress-wii-optimiza-tu-wp-para-wii/" rel="bookmark" title="Permanent Link: WordPress Wii, optimiza tu WP para Wii">WordPress Wii, optimiza tu WP para Wii</a></li><li><a href="http://www.anieto2k.com/2008/05/16/wordpress-26-incluira-google-gears-para-trabajar-offline/" rel="bookmark" title="Permanent Link: WordPress 2.6 incluirá Google Gears para trabajar offline">WordPress 2.6 incluirá Google Gears para trabajar offline</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.179.237"><img rel="38.107.179.237" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2009/12/21/optimiza-la-frecuencia-de-refresco-del-rss-de-tu-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

