<?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>Isotipo &#187; php</title>
	<atom:link href="http://www.isotipo.net/categoria/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.isotipo.net</link>
	<description>Diseño, internet y estándares &#124; blog personal de Basilio Cáceres</description>
	<lastBuildDate>Tue, 26 Jul 2011 02:52:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Crear múltiples sidebars usando nuestros menús de WordPress</title>
		<link>http://www.isotipo.net/2010/09/crear-multiples-sidebars-usando-nuestros-menus-de-wordpress/</link>
		<comments>http://www.isotipo.net/2010/09/crear-multiples-sidebars-usando-nuestros-menus-de-wordpress/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 13:00:18 +0000</pubDate>
		<dc:creator>Basilio</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.isotipo.net/?p=223</guid>
		<description><![CDATA[Los sidebars son las columnas de WordPress en las cuales podemos organizar y mostrar nuestros widgets. Para crear nuevos sidebars, estos deben registrarse como variables en el entorno, de este modo: $sidebar_name = 'Sidebar 1'; register_sidebar(array( 'name' =&#62; $sidebar_name, 'before_widget' =&#62; '&#60;div id="%1$s" class="%2$s"&#62;', 'after_widget' =&#62; '&#60;/div&#62;', 'before_title' =&#62; '&#60;h3&#62;', 'after_title' =&#62; '&#60;/h3&#62;', )); O [...]]]></description>
			<content:encoded><![CDATA[<p>Los sidebars son las columnas de WordPress en las cuales podemos organizar y mostrar nuestros widgets. Para crear nuevos sidebars, estos deben registrarse como variables en el entorno, de este modo:</p>
<pre class="brush: js; ruler: true; first-line: 1;">$sidebar_name = 'Sidebar 1';
register_sidebar(array(
	'name' =&gt; $sidebar_name,
	'before_widget' =&gt; '&lt;div id="%1$s" class="%2$s"&gt;',
	'after_widget' =&gt; '&lt;/div&gt;',
	'before_title' =&gt; '&lt;h3&gt;',
	'after_title' =&gt; '&lt;/h3&gt;',
));</pre>
<p>O también registrando varios a la vez:</p>
<pre class="brush: js; ruler: true; first-line: 1;">register_sidebars(3, array('name'=&gt;'Sidebar %d'));</pre>
<p>Si necesitas crear nuevas columnas para cada sección de tu sitio, puedes hacerlo <strong>dinámicamente</strong> utilizando los <strong>ítems declarados en el menú</strong>. <span id="more-223"></span>Por ejemplo, tenemos creado un menú llamado &#8220;Navigation&#8221; en el que están todas las secciones de nuestro sitio web:</p>
<p><a href="http://www.isotipo.net/wp-content/uploads/2010/09/screenshot7.png"><img class="alignnone size-full wp-image-231" title="screenshot7" src="http://www.isotipo.net/wp-content/uploads/2010/09/screenshot7.png" alt="" width="498" height="74" /></a></p>
<p>Entonces, podemos traer los ítems de este menú y crear los sidebars que necesitamos:</p>
<pre class="brush: js; ruler: true; first-line: 1;">// functions.php
$menu_name = "Navigation";
$navigation_items = wp_get_nav_menu_items($menu_name);
if(!empty($navigation_items)){
	// sort
	foreach($navigation_items as $item){
		$sidebar_name = $item-&gt;title;
		register_sidebar(array(
			'name' =&gt; $sidebar_name,
			'before_widget' =&gt; '&lt;div id="%1$s" class="%2$s"&gt;',
			'after_widget' =&gt; '&lt;/div&gt;',
			'before_title' =&gt; '&lt;h3&gt;',
			'after_title' =&gt; '&lt;/h3&gt;',
		));
	}
}</pre>
<p>Lo que genera un sidebar para cada ítem del menú escogido:</p>
<p><a href="http://www.isotipo.net/wp-content/uploads/2010/09/screenshot8.png"><img class="alignnone size-medium wp-image-232" title="screenshot8" src="http://www.isotipo.net/wp-content/uploads/2010/09/screenshot8-570x277.png" alt="" width="570" height="277" /></a></p>
<p>Algo que siempre debes tener en cuenta al trabajar con sidebars, es que <strong>no existe una relación directa</strong> entre estos y sus widgets, sino que <strong>se relacionan por el orden en que fueron registrados</strong>. Por ejemplo: si un widget esta incluído en el segundo sidebar, y luego se registra otra columna antes que este, entonces el widget quedará incluído en el segundo sidebar, aunque no sea el mismo en el que fue colocado. En este caso, si cambiamos el orden de los ítems en el menú principal, esto puede cambiar la posición de los widgets respecto de las columnas. Un modo de resolverlo es ordenar por ID los items obtenidos del menú, antes de hacer el registro.</p>
<pre class="brush: js; ruler: true; first-line: 1;">$menu_name = "Navigation";
$navigation_items = wp_get_nav_menu_items($menu_name);
if(!empty($navigation_items)){
	$order_items = array();
	foreach ($navigation_items as $key =&gt; $row){
		$order_items[$key] = $row-&gt;ID;
	}
	array_multisort($order_items, SORT_DESC, $navigation_items);
	foreach($navigation_items as $item){
		// Comenzar registro de cada sidebar
	}
}</pre>
<p>Por último, para aplicar este distingo en nuestra web, necesitamos condicionar los sidebars para mostrar sólo el que corresponda dependiendo de la sección en la que nos encontremos:</p>
<pre class="brush: js; ruler: true; first-line: 1;">// sidebar.php
if ( function_exists("dynamic_sidebar") ) {
	$menu_name = "Navigation";
	$navigation_items = wp_get_nav_menu_items($menu_name);
	if(!empty($navigation_items)){
		global $post;
		foreach($navigation_items as $item){
			// Si es página actual o página inferior
			if( $item-&gt;object == 'page' &amp;&amp; ( is_page($item-&gt;object_id) || in_array( $item-&gt;object_id, get_post_ancestors($post) ) ) ):
				dynamic_sidebar($item-&gt;title);
			// Si es categoría o entrada de una categoría
			elseif( $item-&gt;object == 'category' &amp;&amp; ( is_category( $item-&gt;object_id ) || ( is_single() &amp;&amp; in_category( $item-&gt;object_id, $post-&gt;ID ) ) ) ):
				dynamic_sidebar($item-&gt;title);
			// Si es custom item
			elseif( $item-&gt;object == 'custom' &amp;&amp; strpos( $item-&gt;url, $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] ) ):
				dynamic_sidebar($item-&gt;title);
			endif;
		}
	}
}</pre>
<div class="tweetmeme_button" style="bottom:-5em; position:absolute;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.isotipo.net%2F2010%2F09%2Fcrear-multiples-sidebars-usando-nuestros-menus-de-wordpress%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.isotipo.net%2F2010%2F09%2Fcrear-multiples-sidebars-usando-nuestros-menus-de-wordpress%2F&amp;source=basilio&amp;style=compact&amp;service=bit.ly&amp;service_api=R_f866c28eb1458a4dc0b8008bc396fc3f" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.isotipo.net/2010/09/crear-multiples-sidebars-usando-nuestros-menus-de-wordpress/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Parsear RSS en WordPress</title>
		<link>http://www.isotipo.net/2008/12/parsear-rss-en-wordpress/</link>
		<comments>http://www.isotipo.net/2008/12/parsear-rss-en-wordpress/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 22:57:01 +0000</pubDate>
		<dc:creator>Basilio</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.isotipo.net/?p=78</guid>
		<description><![CDATA[Después de muuucho tiempo sin visitar el blog, estoy con el ánimo y las ganas de retomar todos mis pendientes y volver a escribir en mi querido Isotipo, aunque sea con entradas muy sencillas pero útiles como ésta. WordPress trae integrado dentro de sus archivos la librería MagspieRSS, parseador de RSS en PHP que nos [...]]]></description>
			<content:encoded><![CDATA[<p>Después de muuucho tiempo sin visitar el blog, estoy con el ánimo y las ganas de retomar todos mis pendientes y volver a escribir en mi querido Isotipo, aunque sea con entradas muy sencillas pero útiles como ésta.</p>
<p>WordPress trae integrado dentro de sus archivos la librería <a rel="External" class="out" href="http://magpierss.sourceforge.net/">MagspieRSS</a>, parseador de RSS en PHP que nos permite trabajar con ella invocándola desde cualquier función:</p>
<pre class="brush: js; ruler: true; first-line: 10; highlight: [2, 4, 6]">if (!function_exists('MagpieRSS')) {
	include_once (ABSPATH . WPINC . '/rss-functions.php');
	error_reporting(E_ERROR);
}
$rss = @ fetch_rss($_GET["url_rss"]);</pre>
<p>La condición evita volver a llamar a la librería, en caso de que este siendo ocupada. Luego podemos contruir una función para descomponer el array, obteniendo una cantidad determinada de items:</p>
<pre class="brush: js; ruler: true; first-line: 10; highlight: [2, 4, 6]">function get_rss($url, $cantidad){
	if (!function_exists('MagpieRSS')) {
		include_once (ABSPATH . WPINC . '/rss-functions.php');
		error_reporting(E_ERROR);
	}
	$rss = @ fetch_rss($url);
	if ($rss) {
		$items = array_slice($rss-&gt;items, 0, $cantidad);
		$out .= '&lt;ul&gt;';
		foreach($items as $item){
			$date = date("d.m.y",strtotime($item['pubdate']));
			$out .= '&lt;li&gt;&lt;span class="date"&gt;'.$date.'&lt;/span&gt;&lt;br /&gt;&lt;a href="'.$item['link'].'" title="'.$item['title'].'" rel="External Follow"&gt;'.$item['title'].'&lt;/a&gt;&lt;/li&gt;';
		}
		$out .= '&lt;/ul&gt;';
	}
	return $out;
}</pre>
<p>Por supuesto, siempre puedes conocer la información de la variable $rss a traves de un simple print_r($rss), y así elegir entre los items los valores que necesites mostrar.
<div class="tweetmeme_button" style="bottom:-5em; position:absolute;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.isotipo.net%2F2008%2F12%2Fparsear-rss-en-wordpress%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.isotipo.net%2F2008%2F12%2Fparsear-rss-en-wordpress%2F&amp;source=basilio&amp;style=compact&amp;service=bit.ly&amp;service_api=R_f866c28eb1458a4dc0b8008bc396fc3f" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.isotipo.net/2008/12/parsear-rss-en-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress versión 2.3, ok.</title>
		<link>http://www.isotipo.net/2007/09/wordpress-version-23-ok/</link>
		<comments>http://www.isotipo.net/2007/09/wordpress-version-23-ok/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 19:23:00 +0000</pubDate>
		<dc:creator>Basilio</dc:creator>
				<category><![CDATA[isotipo]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp wordpress new]]></category>

		<guid isPermaLink="false">http://www.isotipo.net/isotipo/wordpress-version-23-ok/</guid>
		<description><![CDATA[Una de las novedades de esta semana es la actualización de WordPress, nuestro más querido CMS, a la versión 2.3. Y como soy un buen hijo de su comunidad, deje de lado mi versión 2.1 para subirme de nivel y disfrutar de algunas de sus nuevas opciones. Visualmente no posee cambios sustanciales, sólo cambia el [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las novedades de esta semana es la actualización de <a rel="External" class="out" href="http://wordpress.org/">WordPress</a>, nuestro más querido CMS, a la <a rel="External" class="out" href="http://wordpress.org/development/2007/09/wordpress-23/">versión 2.3</a>. Y como soy un buen hijo de su comunidad, deje de lado mi versión 2.1 para subirme de nivel y disfrutar de algunas de sus nuevas opciones.</p>
<ul>
<li>Visualmente no posee cambios sustanciales, sólo cambia el logo grande del footer, por un ícono más pequeño, con una lista de links relacionados con el sistema.</li>
<li>Al igual que en la versión 2.2, se agregan las opciones de charset y collate en el archivo de  configuración de la base de datos ( <a rel="External" class="out" href="http://codex.wordpress.org/Editing_wp-config.php">wp-config.php</a> ). Así, al momento de instalar wordpress deja por defecto la codificación UTF8, que es actualmente lo recomendado.<a rel="External" class="out" href="http://codex.wordpress.org/Editing_wp-config.php"> </a></li>
</ul>
<pre>define('DB_CHARSET', 'utf8');

define('DB_COLLATE', '');</pre>
<p>* Cuidado al upgradear la base de datos, ya que  puedes sufrir problemas con los acentos en tu sitio. Yo tuve que cambiar la codificación de acentos, ñ y símbolos para que funcionara bien. Para problemas recomiendo <a rel="External" class="out" href="http://www.mydigitallife.info/2007/06/23/how-to-convert-character-set-and-collation-of-wordpress-database/">este artículo</a> que indica los pasos para <strong>convertir tu bbdd a codificación UTF8.</strong></p>
<ul>
<li><strong>Más opciones dentro del editor de texto</strong>. Esto me  gustó mucho, ya que era una lata en todas las versiones anteriores estar modificando la configuración del <a rel="External" class="out" href="http://tinymce.moxiecode.com/">Tiny_MCE</a>, para poner la selección de formato en el editor.<br />
<img src="http://isotipo.net/wp-content/uploads/2007/09/editor.jpg" alt="Nuevas opciones en el editor de texto" /></li>
<li>Una de las novedades más esperadas es la integración al CMS  de la <strong>etiquetación por Tags,</strong> permitiendo mostrar las  etiquetas particulares de un post ( <a rel="External" class="out" href="http://codex.wordpress.org/Template_Tags/the_tags" title="funcion para mostrar los tags de un post">the_tags()</a> ), como el cloud o nube de tus Tags mas usadas ( <a rel="External" class="out" href="http://codex.wordpress.org/Template_Tags/wp_tag_cloud" title="funcion para mostrar la nube de Tags">the_tag_cloud()</a> ). Grande WP !<br />
<img src="http://isotipo.net/wp-content/uploads/2007/09/tags.jpg" alt="Incluir tags en los post" /></li>
<li> <strong>Aviso de actualización de plugins</strong>. Esta es una muy buena opción que da el administrador de WP, para estar atento a los avances que tiene la comunidad de desarrolladores, en torno a los juguetillos que se crean.<br />
<img src="http://isotipo.net/wp-content/uploads/2007/09/plugin_update.jpg" alt="Eviso de update de Plugins" /></li>
</ul>
<p>Grande WP y su comunidad, siempre activa para todos sus usuarios. Cualquier cosilla que le pille de nuevo, actualizo el post <img src='http://www.isotipo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Actualización</h3>
<p>Aquí va también la <a href="http://www.isotipo.net/wp-content/languages/es_ES.mo" title="archivo de traducción de wp">traducción completa</a> de la versión 2.3 de WordPress, que ha puesto <a rel="External" class="out" href="http://alexseo.com/wordpress/wordpress-23-en-espanol/">Alexeo</a> para la comunidad.  Para activarla, debes seguir los siguientes pasos.</p>
<ol>
<li>Crea una carpeta llamada languages dentro de la carpeta wp-content del blog</li>
<li>Luego, sube en ella el archivo <a href="http://www.isotipo.net/wp-content/languages/es_ES.mo" title="Archivo de traducción de wp">es_ES.mo</a>, que acabas de descargar</li>
<li>Po último, edita el archivo wp-config que esta en la raíz del sitio, escribiendo el nombre del archivo.</li>
</ol>
<pre>define ('WPLANG', 'es_ES');</pre>
<div class="tweetmeme_button" style="bottom:-5em; position:absolute;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.isotipo.net%2F2007%2F09%2Fwordpress-version-23-ok%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.isotipo.net%2F2007%2F09%2Fwordpress-version-23-ok%2F&amp;source=basilio&amp;style=compact&amp;service=bit.ly&amp;service_api=R_f866c28eb1458a4dc0b8008bc396fc3f" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.isotipo.net/2007/09/wordpress-version-23-ok/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)

Served from: www.isotipo.net @ 2012-02-06 10:27:05 -->
