<?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>Sumolari.com &#187; WordPress</title>
	<atom:link href="http://sumolari.com/category/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://sumolari.com</link>
	<description>Proyectos de un amante de la informática</description>
	<lastBuildDate>Thu, 09 Feb 2012 20:06:17 +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>WP Carousel 1.1</title>
		<link>http://sumolari.com/wp-carousel-1-1/</link>
		<comments>http://sumolari.com/wp-carousel-1-1/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 17:24:41 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[mis creaciones]]></category>
		<category><![CDATA[wp carousel]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=7025</guid>
		<description><![CDATA[En principio pensaba liberar WP Carousel 1.1 cuando se liberase WordPress 3.3, pero hace unos días recibí un email del repositorio de plugins de  WordPress.org donde se me pedía que retirara el script StepCarousel por tener una licencia incompatible con GPL (todos los plugins del repositorio deben estar liberados bajo la licencia GPL). Para que [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sumolari.com/wp-content/uploads/2011/12/Captura-de-pantalla-2011-12-06-a-las-18.17.31.png" rel="lightbox-7025"><img class="alignleft size-medium wp-image-7026 leftimage" title="Un carrusel de WP Carousel con Nivo Slider" src="http://sumolari.com/wp-content/uploads/2011/12/Captura-de-pantalla-2011-12-06-a-las-18.17.31-300x219.png" alt="Un carrusel de WP Carousel con Nivo Slider" width="300" height="219" /></a>En principio pensaba liberar <a href="http://wordpress.org/extend/plugins/wp-carousel">WP Carousel</a> 1.1 cuando se liberase <a href="http://sumolari.com/category/wordpress/">WordPress 3.3</a>, pero hace unos días recibí un email del repositorio de plugins de  WordPress.org donde se me pedía que retirara el script StepCarousel por tener una licencia incompatible con GPL (todos los plugins del repositorio deben estar liberados bajo la licencia GPL). Para que no retirasen <a href="http://wordpress.org/extend/plugins/wp-carousel">WP Carousel</a> del repositorio oficial y así facilitar su instalación y actualización con un sólo click, he decidido adelantar el lanzamiento.</p>
<p>Como ha sido algo apresurado, no he tenido tiempo de actualizar la documentación, cosa que haré lo antes posible.</p>
<p>Estos son los principales cambios de <a href="http://wordpress.org/extend/plugins/wp-carousel">WP Carousel</a> 1.1:</p>
<ol>
<li>Se ha <strong>eliminado StepCarousel</strong>, a partir de ahora por defecto se usará jCarousel.</li>
<li>Se ha <strong>actualizado la pestaña de ayud</strong>a con más información y compatible con el nuevo sistema de ayuda de <a href="http://sumolari.com/category/wordpress/">WordPress 3.3</a>.</li>
<li>Se ha resuelto el error que aparecía al usarse un theme que no existía. Ahora se muestra un mensaje de error pero la ejecución de la página prosigue.</li>
<li>Se ha añadido un <strong>archivo de configuración</strong> para poder mantener la configuración interna de <a href="http://wordpress.org/extend/plugins/wp-carousel">WP Carousel</a> (nombres de las tablas, prioridades de carga, etc) al actualizar WP Carousel. El uso de este archivo está en la pestaña de ayuda.</li>
<li>Se ha añadido una nueva opción interna para mostrar la lista de los últimos artículos en lugar del campo para introducir la ID del artículo cuando se supera el límite de artículos para la lista de artículos de la página de opciones del carrusel.</li>
<li>Se ha eliminado la matriz $log del código, reduciendo consumo de memoria.</li>
<li>Se ha <strong>añadido <a href="http://nivo.dev7studios.com/demos/">Nivo Slider</a></strong>como motor de carruseles. Los themes compatibles con Nivo Slider son diferentes los themes compatibles con jCarousel, y están claramente identificados en el selector de themes: sus nombres comienzan por &#8220;Nivo -&#8221;.</li>
</ol>
<p>Podéis actualizar WP Carousel desde el Panel de Administración de WordPress.</p>
]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/wp-carousel-1-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WP Carousel 1.0.1</title>
		<link>http://sumolari.com/wp-carousel-1-0-1/</link>
		<comments>http://sumolari.com/wp-carousel-1-0-1/#comments</comments>
		<pubDate>Sat, 13 Aug 2011 07:15:23 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[mis creaciones]]></category>
		<category><![CDATA[wp carousel]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=5397</guid>
		<description><![CDATA[En unos pocos minutos estará disponible la versión 1.0.1 de WP Carousel. Esta versión no incluye ninguna novedad, sino que está centrada en arreglar algunos errores que han afectado a algunos usuarios. Entre los cambios que tiene esta versión se encuentran: Se ha desactivado el contador que impedía mostrar dos veces un carrusel debido a [...]]]></description>
			<content:encoded><![CDATA[<p>En unos pocos minutos estará disponible la versión 1.0.1 de <a title="WP Carousel" href="http://sumolari.com/proyecto/wp-carousel/">WP Carousel</a>. Esta versión no incluye ninguna novedad, sino que está centrada en arreglar algunos errores que han afectado a algunos usuarios. Entre los cambios que tiene esta versión se encuentran:</p>
<ul>
<li>Se ha desactivado el contador que impedía mostrar dos veces un carrusel debido a que algunos usuarios obtenían ese error aún cuando no habían mostrado más de un carrusel. Aún así persiste la limitación de no poder mostrar el mismo carrusel varias veces en la misma página.</li>
<li>A partir de ahora cuando un elemento no tenga extracto ni tenga valor en el campo personalizado que utiliza <a title="WP Carousel" href="http://sumolari.com/proyecto/wp-carousel/">WP Carousel</a> para las descripciones, se mostrará todo el contenido del elemento.</li>
<li>A partir de ahora los vídeos que se añadan a los contenidos personalizados funcionarán correctamente.</li>
<li>Se ha eliminado algo de código innecesario y se han hecho algunos cambios menores.</li>
</ul>
<p>Como de costumbre, se puede actualizar desde el Panel de Administración de WordPress o descargar el plugin desde <a href="http://wordpress.org/extend/plugins/wp-carousel/">WordPress.org</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/wp-carousel-1-0-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ya disponible WP Carousel 1.0</title>
		<link>http://sumolari.com/ya-disponible-wp-carousel-1-0/</link>
		<comments>http://sumolari.com/ya-disponible-wp-carousel-1-0/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 15:09:44 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[mis creaciones]]></category>
		<category><![CDATA[wp carousel]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=5146</guid>
		<description><![CDATA[Hará cosa de una par de horas he liberado la documentación de WP Carousel 1.0 y la nueva versión del plugin. Las novedades ya se han podido ir viendo en las Betas, así que no voy a hacer un recorrido completo por el plugin, sino a resumir brevemente las novedades. Guardado AJAX, nuevos themes por [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sumolari.com/wp-content/uploads/2011/06/carousel_wp_carousel_final.png" rel="lightbox-5146"><img class="alignleft size-thumbnail wp-image-5150 leftimage" title="WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/06/carousel_wp_carousel_final-230x130.png" alt="WP Carousel 1.0" width="121" height="68" /></a>Hará cosa de una par de horas he liberado la documentación de <a href="http://sumolari.com/wp-carousel">WP Carousel</a> 1.0 y la nueva versión del plugin. Las novedades ya se han podido ir viendo en las Betas, así que no voy a hacer un recorrido completo por el plugin, sino a resumir brevemente las novedades.</p>
<h3>Guardado AJAX, nuevos themes por defecto, galería de Addons y preguntas frecuentes</h3>
<p>A partir de ahora, las opciones también se guardan inmediatamente sin salir de la página como los elementos del carrusel. Además cada vez que se guarden las opciones o se haga clic en cualquier botón para guardar los cambios, se creará una copia de seguridad, accesible desde el gestor de copias de seguridad. Desde ese mismo gestor se pueden ver por fechas y por carruseles todas las copias de seguridad, además se pueden ver los elementos que había en cada copia y se pueden restaurar con un sólo clic. Como en anteriores versiones, se puede extraer todo el contenido a través del código de exportación e importarlo a través de la página correspondiente.</p>
<p><a href="../wp-carousel">WP Carousel</a> 1.0 ofrece muchos nuevos themes por defecto, algunos de ellos basados en excelentes diseños creados por profesionales y ofrecidos de forma gratuita en <a href="http://365psd.com/">365psd.com</a>. Además, para promocionar las capacidades de la nueva API de Extras y Themes de <a href="../wp-carousel">WP Carousel</a> 1.0, he creado <a href="http://sumolari.com/wp-carousel-addons/">una galería de Addons</a>, disponible para cualquier usuario. Quien quiera puede enviar su propio Addon para ser revisado y si supera un pequeño test para evitar scripts maliciosos, aparecerá en la galería.</p>
<p>Para facilitar el uso del plugin, la pestaña de ayuda muestra ahora las preguntas más frecuentes, además de las líneas exactas que se deben modificar para cambiar ciertos parámetros internos.</p>
<h3>jCarousel, modo vertical y vídeos en el carrusel</h3>
<p>En <a href="../wp-carousel">WP Carousel</a> 1.0 se permite usar jCarousel como motor de carruseles. Este script permite, entre otras cosas, la disposición vertical de los carruseles. Los themes por defecto soportan en general esta característica, así como el nuevo script.</p>
<p>Además de imágenes y textos, en <a href="../wp-carousel">WP Carousel</a> 1.0 también se pueden mostrar vídeos, siempre que el theme esté adaptado a esta característica. Mostrar un vídeo es tan fácil como completar un campo personalizado o simplemente dejar que <a href="../wp-carousel">WP Carousel</a> tome el primer vídeo del artículo.</p>
<h3>Para desarrolladores</h3>
<p>La nueva API de Themes y Extras permite mostrar formularios para configurar el contenido de forma sencilla. Ahora un Extra puede dar la opción de seleccionar el orden de su contenido o de seleccionar elementos a través de filtros más complejos que por un identificador.</p>
<p>Por si fuera poco, se han añadido los Extras grupales, que permiten añadir no sólo un elemento individual, sino un grupo de elementos, como podrían ser artículos de una determinada categoría.</p>
<p>Como Extras de ejemplo se incluye un Extra para mostrar el contenido de otro carrusel del sitio web, uno para mostrar artículos con un determinado <em>post_type</em> o pertenecientes a una taxonomía personalizada específica, así como la integración con el plugin para <a href="http://sumolari.com/category/wordpress">WordPress</a> <a href="http://thecartpress.com/">TheCartPress</a>, que permite crear una tienda online de forma fácil y rápida.</p>
<p><a href="http://sumolari.com/proyecto/wp-carousel/wp-carousel-documentacion-docs/">La documentación</a> está traducida al inglés, y en combinación con los Extras y los Themes incluidos por defecto, permite expandir <a href="../wp-carousel">WP Carousel</a> a un nuevo nivel.</p>
<h3>Descarga</h3>
<p>El plugin <a href="http://wordpress.org/extend/plugins/wp-carousel">se puede descargar desde WordPress.org</a> o instalar y actualizar directamente desde el panel de administración de <a href="../category/wordpress">WordPress</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/ya-disponible-wp-carousel-1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Añade más páginas al Widget «bbPress View List»</title>
		<link>http://sumolari.com/anade-mas-paginas-al-widget-%c2%abbbpress-view-list%c2%bb/</link>
		<comments>http://sumolari.com/anade-mas-paginas-al-widget-%c2%abbbpress-view-list%c2%bb/#comments</comments>
		<pubDate>Sat, 18 Jun 2011 08:36:23 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[bbPress]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=5012</guid>
		<description><![CDATA[El Widget de bbPress «View List» que viene por defecto en bbPress 2.0 no tiene demasiada utilidad, al menos aparentemente. Sin embargo ofrece una característica la mar de interesante: podemos añadir cualquier página a ese Widget. ¿Cómo? Ahora lo veremos. En primero lugar hay que entender cómo funciona el Widget. Toma del objeto $bbp la [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sumolari.com/wp-content/uploads/2011/06/Captura-de-pantalla-2011-06-18-a-las-10.27.54.png" rel="lightbox-5012"><img class="alignright size-thumbnail wp-image-5013 rightimage" title="Ahora hay dos vistas en la lista de views de bbPress 2.0" src="http://sumolari.com/wp-content/uploads/2011/06/Captura-de-pantalla-2011-06-18-a-las-10.27.54-230x130.png" alt="Ahora hay dos vistas en la lista de views de bbPress 2.0" width="230" height="130" /></a>El Widget de <em>bbPress «View List»</em> que viene por defecto en <a href="http://sumolari.com/tag/bbpress/">bbPress</a> 2.0 no tiene demasiada utilidad, al menos aparentemente. Sin embargo ofrece una característica la mar de interesante: podemos añadir cualquier página a ese Widget. ¿Cómo? Ahora lo veremos.</p>
<p>En primero lugar hay que entender cómo funciona el Widget. Toma del objeto <em>$bbp</em> la matriz <em>views</em>, la recorre y genera una lista de vistas disponibles. Por defecto esta matriz sólo tiene una vista: la lista de temas sin respuesta, pero podemos añadir todas las que queramos. La estructura de la matriz <em>views</em> es la siguiente:</p>
<pre class="brush: plain; title: ; notranslate">
Array
(
    [no-replies] =&gt; Array
        (
            [title] =&gt; Topics with no replies
            [query] =&gt; Array
                (
                    [meta_key] =&gt; _bbp_reply_count
                    [meta_value] =&gt; 1
                    [meta_compare] =&gt; &lt;
                    [orderby] =&gt;
                    [show_stickies] =&gt;
                )

            [feed] =&gt; 1
        )

    [IDENTIFICADOR] =&gt; Array
        (
            [title] =&gt;Título
            [query] =&gt; Array
                ( /* Matriz con los parámetros de la consulta a realizar en dicha vista, equivale a query_vars en WP_Query */
                )

            [feed] =&gt; 1 /* Supongo que será si se quiere mostrar o no esta vista en el RSS Feed, pero no lo he comprobado, así que no sé realmente qué es lo que hace */
        )

)
</pre>
<p>Interesante, ¿verdad? Pues bien, jugando un poco con esta matriz no sólo podemos crear enlaces que lleven a páginas que muestren sólo determinados temas, sino que podemos hacer que redirijan a cualquier lugar.</p>
<pre class="brush: php; title: ; notranslate">
function bbpress_add_rss_to_view_list()
	{
		global $bbp;

		$nombre_de_la_vista = 'sumolari_bbpress_rss_feed'; // Utilizo este nombre por si en un futuro añaden a bbPress una vista llamada rss_feed o algo similar

		$bbp-&gt;views[$nombre_de_la_vista] = array(
			'title' =&gt; __('RSS Feed', 'bbpress'),
			'query' =&gt; array(),
			'feed' =&gt; 1
		);

		if (bbp_get_view_id() == $nombre_de_la_vista)
		{
			header('Location: '.home_url().'/feed/?post_type='.$bbp-&gt;topic_post_type);
			exit;
		}

	}

	add_action('get_header', 'bbpress_add_rss_to_view_list');
</pre>
<p>¿Qué hace este código? En primer lugar obtiene el objeto <em>$bbp</em>. A continuación definimos un identificador para nuestra nueva vista. Después añadimos a la matriz <em>views </em>un nuevo índice con nuestro identificador y como valor una matriz que tiene por valor del <em>title, &#8220;RSS Feed</em>&#8220;, por valor del índice <em>query</em> una matriz vacía y por valor del índice <em>feed</em> el número 1. Tras esto verificamos que no nos encontramos en nuestra vista, ya que si así fuera, tendríamos que redirigir la página hacia el RSS Feed de los temas del foro. Por último añadimos esta nueva función a las acciones que se ejecutarán al obtener la cabecera del theme.</p>
<p>¿Cómo generamos el RSS Feed? <a href="../category/wordpress/">WordPress</a> lo hace de forma automática, y al ser los foros de <a href="../tag/bbpress/">bbPress</a> 2.0 artículos de <a href="../category/wordpress/">WordPress</a> con <em>post_type</em> personalizados, basta con cargar el RSS Feed indicando el tipo de artículos que queremos ver, a través del parámetro de URL <em>post_type</em>.</p>
<p>Obviamente esta es sólo una de las cosas que se pueden hacer modificando la lista de vistas. El único límite es nuestra imaginación.</p>
]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/anade-mas-paginas-al-widget-%c2%abbbpress-view-list%c2%bb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Muestra un widget con tags de bbPress en WordPress</title>
		<link>http://sumolari.com/muestra-un-widget-con-tags-de-bbpress-en-wordpress/</link>
		<comments>http://sumolari.com/muestra-un-widget-con-tags-de-bbpress-en-wordpress/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 20:24:50 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[bbPress]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=4993</guid>
		<description><![CDATA[Una de las características que sorprendentemente no incluye bbPress 2.0 es un Widget para WordPress que muestre las etiquetas de los temas del foro. Es curioso que incluya un Widget que sólo muestre un enlace a la lista de mensajes sin responder y por contra no incluya un índice de etiquetas. Esta tarde me he [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sumolari.com/wp-content/uploads/2011/06/Captura-de-pantalla-2011-06-17-a-las-22.21.06.png" rel="lightbox-4993"><img class="alignleft size-thumbnail wp-image-5007 leftimage" title="Lista de temas de un foro bbPress como Widget de WordPress" src="http://sumolari.com/wp-content/uploads/2011/06/Captura-de-pantalla-2011-06-17-a-las-22.21.06-230x130.png" alt="Lista de temas de un foro bbPress como Widget de WordPress" width="230" height="130" /></a>Una de las características que sorprendentemente no incluye <a href="http://sumolari.com/tag/bbpress/">bbPress</a> 2.0 es un Widget para <a href="http://sumolari.com/category/wordpress/">WordPress</a> que muestre las etiquetas de los temas del foro. Es curioso que incluya un Widget que sólo muestre un enlace a la lista de mensajes sin responder y por contra no incluya un índice de etiquetas.</p>
<p>Esta tarde me he tomado la molestia de crear yo uno y quiero compartirlo con todo aquel al que le parezca interesante. Básicamente se copia el siguiente código en el archivo <em>functions.php</em> de nuestro theme de <a href="../category/wordpress/">WordPress</a> o en un archivo <em>.php</em> en la carpeta de plugins de <a href="../category/wordpress/">WordPress</a>.</p>
<pre class="brush: php; title: ; notranslate">
class bbPress_Widget_Tag_Cloud extends WP_Widget {

		function bbPress_Widget_Tag_Cloud() {
			$widget_ops = array( 'description' =&gt; __( &quot;Your most used tags in cloud format&quot;) );
			$this-&gt;WP_Widget('bbpress_tag_cloud', __('bbPress Tag Cloud'), $widget_ops);
		}

		function widget( $args, $instance ) {
			extract($args);
			$current_taxonomy = $this-&gt;_get_current_taxonomy($instance);
			if ( !empty($instance['title']) ) {
				$title = $instance['title'];
			} else {
				if ( 'post_tag' == $current_taxonomy ) {
					$title = __('Tags');
				} else {
					$tax = get_taxonomy($current_taxonomy);
					$title = $tax-&gt;labels-&gt;name;
				}
			}
			$title = apply_filters('widget_title', $title, $instance, $this-&gt;id_base);

			echo $before_widget;
			if ( $title )
				echo $before_title . $title . $after_title;
			echo '
&lt;div class=&quot;tagcloud&quot;&gt;';
			wp_tag_cloud( apply_filters('widget_tag_cloud_args', array('taxonomy' =&gt; $current_taxonomy) ) );
			echo &quot;&lt;/div&gt;
\n&quot;;
			echo $after_widget;
		}

		function update( $new_instance, $old_instance ) {
			$instance['title'] = strip_tags(stripslashes($new_instance['title']));
			$instance['taxonomy'] = stripslashes($new_instance['taxonomy']);
			return $instance;
		}

		function form( $instance ) {

			global $bbp;

			$current_taxonomy = $this-&gt;_get_current_taxonomy($instance);
	?&gt;

&lt;label for=&quot;&lt;?php echo $this-&gt;get_field_id('title'); ?&gt;&quot;&gt;&lt;!--?php _e('Title:') ?--&gt;&lt;/label&gt;
		&lt;input id=&quot;&lt;?php echo $this-&gt;get_field_id('title'); ?&gt;&quot; class=&quot;widefat&quot; name=&quot;&lt;?php echo $this-&gt;get_field_name('title'); ?&gt;&quot; type=&quot;text&quot; value=&quot;&lt;?php if (isset ( $instance['title'])) {echo esc_attr( $instance['title'] );} ?&gt;&quot; /&gt;

&lt;label for=&quot;&lt;?php echo $this-&gt;get_field_id('taxonomy'); ?&gt;&quot;&gt;&lt;!--?php _e('Taxonomy:') ?--&gt;&lt;/label&gt;
&lt;select id=&quot;&lt;?php echo $this-&gt;get_field_id('taxonomy'); ?&gt;&quot; class=&quot;widefat&quot; name=&quot;&lt;?php echo $this-&gt;get_field_name('taxonomy'); ?&gt;&quot;&gt;		&lt;!--?php foreach ( get_object_taxonomies($bbp---&gt;forum_post_type) as $taxonomy ) :					$tax = get_taxonomy($taxonomy);					if ( !$tax-&gt;show_tagcloud || empty($tax-&gt;labels-&gt;name) )						continue;		?&gt;			&lt;option value=&quot;&lt;?php echo esc_attr($taxonomy) ?&gt;&quot;&gt;&gt;&lt;!--?php echo $tax---&gt;labels-&gt;name; ?&gt;&lt;/option&gt;		&lt;!--?php endforeach; ?--&gt;		&lt;!--?php foreach ( get_object_taxonomies($bbp---&gt;topic_post_type) as $taxonomy ) :					$tax = get_taxonomy($taxonomy);					if ( !$tax-&gt;show_tagcloud || empty($tax-&gt;labels-&gt;name) )						continue;		?&gt;			&lt;option value=&quot;&lt;?php echo esc_attr($taxonomy) ?&gt;&quot;&gt;&gt;&lt;!--?php echo $tax---&gt;labels-&gt;name; ?&gt;&lt;/option&gt;		&lt;!--?php endforeach; ?--&gt;		&lt;!--?php foreach ( get_object_taxonomies($bbp---&gt;reply_post_type) as $taxonomy ) :					$tax = get_taxonomy($taxonomy);					if ( !$tax-&gt;show_tagcloud || empty($tax-&gt;labels-&gt;name) )						continue;		?&gt;			&lt;option value=&quot;&lt;?php echo esc_attr($taxonomy) ?&gt;&quot;&gt;&gt;&lt;!--?php echo $tax---&gt;labels-&gt;name; ?&gt;&lt;/option&gt;		&lt;!--?php endforeach; ?--&gt;&lt;/select&gt;
&lt;!--?php&lt;br /--&gt;		}

		function _get_current_taxonomy($instance) {
			if ( !empty($instance['taxonomy']) &amp;&amp; taxonomy_exists($instance['taxonomy']) )
				return $instance['taxonomy'];

			return 'post_tag';
		}
	}

register_widget('bbPress_Widget_Tag_Cloud');
</pre>
<p>¿Cómo funciona? Pues lo que he hecho ha sido copiar el código del Widget de nube de etiquetas que viene por defecto en <a href="../category/wordpress/">WordPress</a> (sobre la línea 986 del archivo<em> wp-includes/default-widgets.php</em>) y modificarlo para que en la lista de posibles taxonomías a mostrar muestre todas las taxonomías que pertenezcan a alguno de los <em>post_type</em> que añade <a href="../tag/bbpress/">bbPress</a> 2.0.</p>
<p>Lamentablemente hay un pequeño problema en esto y es que aparecerán también las etiquetas que se aplican a temas publicados en foros privados, comprometiendo la privacidad de dichos foros. La solución me ha costado bastante más de encontrar, pero la tenéis a continuación. Se trata básicamente de aplicar un filtro al Widget, que añade a la lista de etiquetas a excluir cualquier etiqueta que haya sido asignada a un tema de un foro privado. De nuevo, se puede añadir en el archivo <em>functions.php</em> de nuestro theme o en un archivo aparte en <em>wp-content/plugins</em>.</p>
<pre class="brush: php; title: ; notranslate">
function parchear_bug_tag_cloud($content)
	{

		global $bbp;

		$private_forums = bbp_get_private_forum_ids();

		if (bbp_user_can_view_forum(array('forum_id' =&gt; $private_forums[1])))
		{
			return $content;
		}

		$tags_to_remove = array();
		foreach ($private_forums as $pf_id =&gt; $pf_forum)
		{

			if ($pf_forum == '') { continue; }

			$temp_query = new WP_Query(array('suppress_filters' =&gt; true, 'post_type' =&gt; $bbp-&gt;topic_post_type, 'meta_query' =&gt; array(array('key' =&gt; '_bbp_forum_id', 'value' =&gt; $pf_forum, 'compare' =&gt; '='))));

			while ( $temp_query-&gt;have_posts() ) : $temp_query-&gt;the_post();

				$tags = wp_get_object_terms(get_the_ID(), $bbp-&gt;topic_tag_id);

				foreach ($tags as $t_key =&gt; $t_value)
				{
					$tags_to_remove[] = $t_value-&gt;term_id;
				}

			endwhile;

			wp_reset_postdata();

		}

		$content['exclude'] = $tags_to_remove;

		return $content;
	}

	add_filter('widget_tag_cloud_args', 'parchear_bug_tag_cloud');
</pre>
<p>¿Cómo funciona? Primero se obtienen los foros privados y se comprueba que el usuario no puede verlos. A continuación se recorren todos los temas de todos los foros privados (sí, se que no está demasiado optimizado, pero no he encontrado una forma mejor de hacerlo) y se añaden todas sus etiquetas a la lista de etiquetas a excluir. Por último se devuelven los nuevos parámetros del Widget.</p>
<p>La lástima es que hay un segundo bug, y es que si un usuario accede a la URL de una etiqueta que está asignada a un tema publicado en un foro privado, el usuario puede ver la lista de temas que tienen asignada dicha etiqueta, y entre esos temas, aparecerá también el tema que debería estar oculto al ser publicado en un foro privado.</p>
<p>De nuevo para solucionar esto podemos recurrir a los filtros de <a href="../tag/bbpress/">bbPress</a> y <a href="../category/wordpress/">WordPress</a>, en concreto arreglar el error se logra con el siguiente código:</p>
<pre class="brush: php; title: ; notranslate">
function parchear_bug_foros_privados($content)
	{
		global $bbp;

		$private_forums = bbp_get_private_forum_ids();

		if (bbp_user_can_view_forum(array('forum_id' =&gt; $private_forums[1])))
		{
			return $bbp-&gt;topic_query-&gt;post_count;
		}

		$topics_to_remove = array();
		foreach ($bbp-&gt;topic_query-&gt;posts as $key =&gt; $post)
		{
			if (in_array(get_post_meta($post-&gt;ID, '_bbp_forum_id', true), $private_forums))
			{
				$topics_to_remove[] = $key;
			}
		}

		foreach ($topics_to_remove as $key =&gt; $topic_to_remove)
		{
			unset($bbp-&gt;topic_query-&gt;posts[$topic_to_remove]);
		}

		$bbp-&gt;topic_query-&gt;post_count = count($bbp-&gt;topic_query-&gt;posts);

		$bbp-&gt;topic_query-&gt;post = reset($bbp-&gt;topic_query-&gt;posts);

		return $bbp-&gt;topic_query-&gt;post_count;

	}

	add_filter('bbp_has_topics', 'parchear_bug_foros_privados');
</pre>
<p>Esto tiene un efecto secundario: a partir del momento de aplicar estos dos parches, cualquier tema que tenga asignada una etiqueta que esté a su vez asignada a un tema publicado en un foro privado, será invisible para los usuarios que no tengan permiso para ver dicho foro, es decir, se volverá tan privado como los temas publicados en un foro privado. Este efecto desaparece al eliminar el código de ambos parches, sin embargo si no usamos estas funciones, queda a la vista de cualquier usuario (incluso los no registrados) la lista de temas privados.</p>
<p>Sencillo y limpio, pues si queremos eliminar este parche o el Widget basta con borrar el código anterior. Además, en caso de que este error no se arreglara en futuras versiones, el parche y el Widget seguirán disponibles tras actualizar <a href="../tag/bbpress/">bbPress</a>, manteniendo la sencillez característica de <a href="../category/wordpress/">WordPress</a>.</p>
<p>De todos modos, espero que en la versión final de <a href="../tag/bbpress/">bbPress</a> 2.0 se incluya un Widget que reemplace al mío, y que los fallos sean arreglados.</p>
]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/muestra-un-widget-con-tags-de-bbpress-en-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aplica los filtros de WordPress a bbPress 2.0</title>
		<link>http://sumolari.com/aplica-los-filtros-de-wordpress-a-bbpress-2-0/</link>
		<comments>http://sumolari.com/aplica-los-filtros-de-wordpress-a-bbpress-2-0/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 13:50:03 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[bbPress]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=4982</guid>
		<description><![CDATA[bbPress no se caracteriza por ser uno de los sistemas de foros más completos, de hecho no es posible utilizar etiquetas tan comunes en otros foros como la de coloreado de código o la posibilidad de añadir un vídeo con tan sólo usar la etiqueta [youtube]. Sin embargo, al ser un plugin de WordPress, podemos [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://sumolari.com/wp-content/uploads/2011/06/Captura-de-pantalla-2011-06-17-a-las-15.42.45.png" rel="lightbox-4982"><img class="size-large wp-image-4985 aligncenter" style="border: 1px solid #CCC;" title="Coloreado de sintaxis en bbPress" src="http://sumolari.com/wp-content/uploads/2011/06/Captura-de-pantalla-2011-06-17-a-las-15.42.45-848x343.png" alt="Coloreado de sintaxis en bbPress" width="848" height="343" /></a></p>
<p><a href="http://sumolari.com/tag/bbpress/">bbPress</a> no se caracteriza por ser uno de los sistemas de foros más completos, de hecho no es posible utilizar etiquetas tan comunes en otros foros como la de coloreado de código o la posibilidad de añadir un vídeo con tan sólo usar la etiqueta [<em></em>youtube]. Sin embargo, al ser un plugin de <a href="http://sumolari.com/category/wordpress/">WordPress</a>, podemos extender las características de <a href="../tag/bbpress/">bbPress</a> aprovechándonos de las de <a href="../category/wordpress/">WordPress</a>. ¿De qué estoy hablando? De aplicar los mismos filtros que aplica <a href="../category/wordpress/">WordPress</a> al contenido de los artículos a los mensajes del foro, haciendo que cada característica que añadamos a <a href="../category/wordpress/">WordPress</a> a través de plugins también esté disponible al instante en el foro.</p>
<p>Aplicar estos cambios es muy sencillo. Podemos crear un nuevo plugin o modificar el archivo <em>functions.php</em> de nuestro theme de <a href="../category/wordpress/">WordPress</a>. En primer lugar definiremos una función que devuelva el contenido que se le pasa como parámetro tras aplicarle los filtros que aplica <a href="../category/wordpress/">WordPress</a>. A continuación añadiremos esta función a los filtros que aplica <a href="../tag/bbpress/">bbPress</a> al contenido de los mensajes. Aquí va el código en cuestión.</p>
<pre class="brush: php; title: ; notranslate">
function aplicar_filtros($content)
{

	global $bbp;

	$author_id = $bbp-&gt;reply_query-&gt;posts[$bbp-&gt;reply_query-&gt;current_post]-&gt;post_author;
	$author_info = get_userdata($author_id);

	if ($author_info-&gt;wp_capabilities['administrator'] == 1)
	{
		return apply_filters('the_content', $content);
	}

	return apply_filters('comment_text', $content);
}

add_filter('bbp_get_reply_content', 'aplicar_filtros');
</pre>
<p>¿Cómo funciona esta función? En primer lugar obtenemos la variable <em>$bbp</em>, que contiene, entre otras cosas, la información relativa al mensaje que estamos mostrando. A continuación obtenemos la ID del usuario que ha publicado el mensaje, y con ésta, la información del usuario. Tras esto comprobamos que el autor del artículo tiene permisos de administrador. Si es así, el usuario puede utilizar cualquier filtro aplicado a los artículos del blog (es decir, cualquier filtro añadido a <em>the_content</em>); si por el contrario el autor no es un administrador, le dejaremos usar cualquier filtro que se pueda usar en los comentarios (es decir, que se añade a <em>comment_text</em>).</p>
<p>Por último añadimos la nueva función al filtro <em>bbp_get_reply_content</em> y ¡voilà! Ya tenemos nuevas características soportadas en nuestro foro. Ahora si queremos, por ejemplo, permitir el coloreado de código, basta con instalar un plugin como <a href="http://wordpress.org/extend/plugins/syntaxhighlighter/">SyntaxHighlighter Evolved</a> y activarlo desde el Panel de Administración de WordPress. También podremos usar otras características de WordPress, como embeber vídeos usando los shortcodes [<em></em>video] o [<em></em>youtube].</p>
<p>Del mismo modo, por ejemplo, se podrían añadir carruseles creados con <em>WP Carousel 1.0</em> con utilizar el shortcode [<em></em>wp_carousel].</p>
<p>Por medidas de seguridad, tan sólo los administradores gozarán de todos los filtros, ya que es posible que algún plugin añada un filtro a <em>the_content</em> que no queremos que los demás usuarios puedan usar públicamente, como por ejemplo añadir formularios de contacto o mostrar carruseles.</p>
]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/aplica-los-filtros-de-wordpress-a-bbpress-2-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WP Carousel 1.0 &#8211; Beta 2 disponible</title>
		<link>http://sumolari.com/wp-carousel-1-0-beta-2-disponible/</link>
		<comments>http://sumolari.com/wp-carousel-1-0-beta-2-disponible/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 19:23:43 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[descargas]]></category>
		<category><![CDATA[mis creaciones]]></category>
		<category><![CDATA[wp carousel]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=4916</guid>
		<description><![CDATA[Siguiendo con el desarrollo de WP Carousel, hoy os traigo la segunda Beta de la versión 1.0. En esta versión me he centrado en arreglar fallos sueltos que había en la versión anterior y en añadir un par de características nuevas. Los bugs resueltos en esta Beta son: Bug que no permitía seleccionar el texto [...]]]></description>
			<content:encoded><![CDATA[<p>Siguiendo con el desarrollo de <a href="http://sumolari.com/wp-carousel">WP Carousel</a>, hoy os traigo la segunda Beta de la versión 1.0. En esta versión me he centrado en arreglar fallos sueltos que había en la versión anterior y en añadir un par de características nuevas.</p>
<p>Los bugs resueltos en esta Beta son:</p>
<ul>
<li>Bug que no permitía seleccionar el texto de los elementos del carrusel en el Panel de Administración (presente desde la versión 0.5)</li>
<li>Bug que no permitía redimensionar las áreas de texto de los elementos añadidos al carrusel en el Panel de Administración en algunos navegadores (entre ellos Firefox 4)</li>
<li>Diversos bugs menores en la interfaz del Gestor de Backups que aparecían al tener carruseles sin backups</li>
<li>Actualizado el sistema de guardado AJAX para que en caso de error también se puedan guardar backups mediante el procedimiento no-AJAX</li>
<li>Otros bugs menores y ligeros cambios en diversas funciones de <a href="../wp-carousel">WP Carousel</a></li>
</ul>
<p><a href="http://sumolari.com/wp-content/uploads/2011/04/random_order.png" rel="lightbox-4916"><img class="alignleft size-thumbnail wp-image-4917 leftimage" title="Orden aleatorio en WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/04/random_order-230x130.png" alt="Orden aleatorio en WP Carousel 1.0" width="230" height="130" /></a>En cuanto a las nuevas características, la primera novedad es que ahora <a href="../wp-carousel">WP Carousel</a> soporta el orden aleatorio en los artículos extraídos de categorías, tags o autores. Los elementos del carrusel serán ordenados al azar, de modo que puede darse el caso de que un elemento ordenado al azar aparezca en el carrusel antes de un elemento no añadido al azar. El orden aleatorio está pensado para carruseles en los que sólo hay contenido ordenado de forma aleatoria. Esta nueva opción se encuentra en la sección de orden de los elementos, junto con el orden cronológico y el orden cronológico inverso.</p>
<p>También he añadido la posibilidad de seleccionar el tamaño de las miniaturas de las imágenes, para lo cual tan sólo es necesario modificar una línea del archivo <em>wp-carousel.php</em>.</p>
<p>Por lo que respecta a la pestaña de ayuda, he añadido bastante más información a la misma, de modo que muchas de las dudas que surgen al comenzar a usar <a href="../wp-carousel">WP Carousel</a> están resueltas ahí (cosas como la prioridad de las imágenes, de dónde sale el texto del carrusel, qué línea modificar para habilitar el modo de integración externa o cuáles son los campos personalizados que utiliza <a href="../wp-carousel">WP Carousel</a>).</p>
<p><a href="http://sumolari.com/wp-content/uploads/2011/04/custom_taxonomies.png" rel="lightbox-4916"><img class="alignright size-thumbnail wp-image-4920 rightimage" title="Taxonomías personalizadas en WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/04/custom_taxonomies-230x130.png" alt="Taxonomías personalizadas en WP Carousel 1.0" width="230" height="130" /></a>Por último, he añadido dos nuevos Extras por defecto: <em>Custom Post Type</em> y <em>Custom Taxonomy </em>que permiten mostrar, respectivamente, un artículo con un post type personalizado o artículos pertenecientes a cualquier taxonomía personalizada. La única pega es que en cualquiera de los dos casos es necesario indicar la ID del elemento, aunque tampoco es demasiado molesto teniendo en cuenta que se puede añadir artículos de cualquier taxonomía, sea del tipo que sea.</p>
<p>A aquellos que utilicéis la Beta 1, os recomiendo actualizar a la Beta 2. Aquellos interesados en las nuevas características también pueden actualizar a la Beta 2, aunque guardando siempre una copia de seguridad del contenido anterior, por si las moscas.</p>
<p>Descarga: <a href="http://downloads.wordpress.org/plugin/wp-carousel.1.0-Beta2.zip">WP Carousel 1.0 &#8211; Beta 2</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/wp-carousel-1-0-beta-2-disponible/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Presentando&#8230; WP Carousel 1.0</title>
		<link>http://sumolari.com/presentando-wp-carousel-1-0/</link>
		<comments>http://sumolari.com/presentando-wp-carousel-1-0/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 15:20:42 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[mis creaciones]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wp carousel]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=4796</guid>
		<description><![CDATA[Han pasado más de siete largos meses desde que liberé la última versión de WP Carousel. Casi ocho meses en los que he tenido tiempo más que suficiente para decir por dónde continuar el desarrollo de WP Carousel y cómo hacerlo. Siete meses en los que además de trabajar en otros proyectos he podido continuar [...]]]></description>
			<content:encoded><![CDATA[<p>Han pasado más de siete largos meses desde que liberé la última versión de <a href="http://sumolari.com/wp-carousel">WP Carousel</a>. Casi ocho meses en los que he tenido tiempo más que suficiente para decir por dónde continuar el desarrollo de <a href="../wp-carousel">WP Carousel</a> y cómo hacerlo. Siete meses en los que además de<a href="http://musicmaniac.sumolari.com/"> trabajar en otros proyectos</a> he podido continuar el desarrollo de <a href="../wp-carousel">WP Carousel</a> y terminar una nueva versión (al menos la primera beta de una nueva versión). Pero ésta no es una versión cualquiera&#8230; es<strong> la versión 1.0 de WP Carousel</strong>. Han pasado casi ocho meses, pero después de ver las novedades, veréis que ha valido la pena la espera.<span id="more-4796"></span></p>
<p>En estos casi dos años de desarrollo del plugin, <a href="../wp-carousel">WP Carousel</a> ha avanzado barbaridades. Desde permitir crear sólo un carrusel hasta poder extender el plugin creando nuevos Extras y Themes. Pues bien, esta nueva versión añade mucho más que todas las anteriores. He escuchado la mayoría de las peticiones y comentarios que he recibido (creo que realmente he atentido todas las peticiones que me han llegado) y seguro que os encantan las novedades que incorpora esta versión, así que sin más dilación, ahí van, las nuevas características de <a href="../wp-carousel">WP Carousel</a> 1.0.</p>
<h3>Vídeo en el carrusel y modo vertical</h3>
<p><a href="http://sumolari.com/wp-content/uploads/2011/02/video.png" rel="lightbox-4796"><img class="alignleft size-thumbnail wp-image-4797 leftimage" title="Un vídeo en WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/video-230x130.png" alt="Un vídeo en WP Carousel 1.0" width="170" height="96" /></a><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.52.09.png" rel="lightbox-4796"><img class="alignright size-thumbnail wp-image-4809 rightimage" title="Theme Default-Sidebar en modo vertical en WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.52.09-230x130.png" alt="Theme Default-Sidebar en modo vertical en WP Carousel 1.0" width="230" height="130" /></a>Sí, parecía complicado, y sí, pensaba que sería necesario usar plugins de terceros, pero no, ni será complicado ni será necesario usar ningún otro plugin. Los vídeos se podrán insertar en el carrusel a través de un campo personalizado (por defecto, <em>wp_carousel_video_url</em>) y dependerá de los themes mostrar o no el vídeo (todos los themes que vienen por defecto soportan vídeos, y adaptar los themes para soportar vídeos es muy fácil). <a href="../wp-carousel">WP Carousel</a> soporta los mismos proveedores que <a href="http://sumolari.com/category/wordpress/">WordPress</a> (utiliza el shortcode  para mostrar los vídeos) y como ya he dicho, <strong>no requiere de ningún otro plugin</strong> para mostrar los vídeos.</p>
<p>Respecto al modo vertical, es muy fácil de activar (marcar un checkbox), sin embargo no todos los themes lo soportarán, ya que por motivos de diseño, hay algunos themes en los que no «pega» un modo vertical. Sin embargo el theme <em>Default</em> sí que soportará el modo vertical, al igual que el theme <em>Default-Sidebar</em>. El modo vertical sólo funciona con <em>jCarousel</em>, ya que <em>StepCarousel</em> no soporta el movimiento vertical de los paneles, así que es necesario que el theme soporte <em>jCarousel</em> para que pueda soportar el nuevo modo vertical.</p>
<h3>Shortcode para WP Carousel y nombres de carruseles</h3>
<p><a href="http://sumolari.com/wp-content/uploads/2011/02/shortcode.png" rel="lightbox-4796"><img class="alignright size-thumbnail wp-image-4798 rightimage" title="Nuevo Shortcode de WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/shortcode-230x130.png" alt="Nuevo Shortcode de WP Carousel 1.0" width="230" height="130" /></a>Poder añadir carruseles en los artículos era una de las funciones más pedidas, y también la he añadido. El shortcode es muy fácil de usar. La sintaxis es:</p>
<pre class="brush: plain; title: ; notranslate">[wp_carousel]ID del carrusel[/wp_carousel]</pre>
<p>Este shortcode permite mostrar con mucha facilidad un carrusel dentro de un artículo. Además se añade un icono al editor de <a href="http://sumolari.com/category/wordpress/">WordPress</a> para no necesitar memorizar el código.</p>
<p><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.32.54.png" rel="lightbox-4796"><img class="alignleft size-thumbnail wp-image-4799 leftimage" title="Los nombres afectan al menú de WP Carousel" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.32.54-160x130.png" alt="Los nombres afectan al menú de WP Carousel" width="160" height="130" /></a><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.33.21.png" rel="lightbox-4796"><img class="alignright size-thumbnail wp-image-4800 rightimage" title="Cambiar el nombre de un carrusel es pan comido en WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.33.21-230x45.png" alt="Cambiar el nombre de un carrusel es pan comido en WP Carousel 1.0" width="230" height="45" /></a>Por otro lado, he añadido la posibilidad de personalizar los nombres de los carruseles para saber qué contiene cada carrusel.</p>
<p><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.34.52.png" rel="lightbox-4796"><img class="alignright size-thumbnail wp-image-4802 rightimage" title="El nombre se refleja en el Widget de WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.34.52-230x130.png" alt="El nombre se refleja en el Widget de WP Carousel 1.0" width="230" height="130" /></a>Cambiar el nombre es tan fácil como hacer clic sobre el nombre anterior, escribir uno nuevo y pulsar enter. Estos cambios, además de afectar el menú de <a href="../wp-carousel">WP Carousel</a>, se reflejan en el Widget, que en lugar de pedirte la ID del carrusel, te muestra la lista de carruseles para que elijas el que quieras mostrar.</p>
<h3>Nuevo gestor de themes y opciones</h3>
<p>Continuando el trabajo que comencé al desarrollar la UI Drag &amp; Drop, he modificado la zona de opciones del carrusel para que a partir de ahora se guarden sin cambiar de página, mediante AJAX. También he modificado las checkboxes para que tengan un aspecto más bonito y simple (a imitación de los UISwitch de iOS).</p>
<p><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.42.39.png" rel="lightbox-4796"><img class="alignleft size-thumbnail wp-image-4805 leftimage" title="Selector de themes de WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.42.39-230x130.png" alt="Selector de themes de WP Carousel 1.0" width="230" height="130" /></a><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.42.55.png" rel="lightbox-4796"><img class="alignright size-thumbnail wp-image-4806 rightimage" title="Selector de themes de WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.42.55-230x130.png" alt="Selector de themes de WP Carousel 1.0" width="230" height="130" /></a>El primer lugar, he rediseñado completamente el selector de themes. A partir de ahora será un carrusel donde en cada panel se presentará un theme con la información básica (autor, versión, descripción y enlaces útiles). Pasando el cursor sobre el icono de información (en la esquina inferior derecha) aparecerá información acerca de las características que soporta el theme en cuestión. El theme seleccionado tendrá un borde blanco a su alrededor que te hará localizarlo más fácilmente.</p>
<p><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.47.47.png" rel="lightbox-4796"><img class="alignleft size-thumbnail wp-image-4808 leftimage" title="Opciones generales de los themes en WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.47.47-230x130.png" alt="Opciones generales de los themes en WP Carousel 1.0" width="230" height="130" /></a>Las opciones generales del carrusel se ajustan automáticamente al theme activo, de modo que si éste no soporta <em>jCarousel</em>, no se nos mostrará la opción de activarlo, y si no soporta el tamaño personalizado del carrusel, nos aparecerá un mensaje advirtiéndonos de esto. Todo de la forma más clara posible para evitar confusiones entre creadores de themes y usuarios. Los themes por defecto soportan todas las funciones de <a href="../wp-carousel">WP Carousel</a> 1.0 a excepción de los tamaños personalizados, ya que algunos themes se ajustan por completo a un único tamaño, de modo que con configurar el tamaño del panel, todo el carrusel se ajusta automáticamente, facilitando todo el proceso de cambiar el tamaño.</p>
<p><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.53.53.png" rel="lightbox-4796"><img class="alignleft size-thumbnail wp-image-4811 leftimage" title="Opciones únicas del theme en WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-18.53.53-230x130.png" alt="Opciones únicas del theme en WP Carousel 1.0" width="230" height="130" /></a>En la segunda pestaña podremos modificar las opciones únicas de cada theme, porque con la nueva API de Themes de <a href="../wp-carousel">WP Carousel</a>1.0, los creadores de themes podrán dotar a sus creaciones de opciones únicas que los hagan inconfundibles y le de un valor añadido al theme.</p>
<p>Entre las opciones de los themes por defecto se encuentra la posibilidad de mostrar el título en lugar del extracto en el carrusel.</p>
<h3>Gestor de Copias de Seguridad</h3>
<p><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.28.11.png" rel="lightbox-4796"><img class="alignleft size-thumbnail wp-image-4815 leftimage" title="El código de exportación de WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.28.11-230x130.png" alt="El código de exportación de WP Carousel 1.0" width="230" height="130" /></a><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.28.35.png" rel="lightbox-4796"><img class="alignright size-thumbnail wp-image-4817 rightimage" title="Previsualización de una copia de seguridad de WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.28.35-230x130.png" alt="Previsualización de una copia de seguridad de WP Carousel 1.0" width="230" height="130" /></a>Desde hace tiempo <a href="../wp-carousel">WP Carousel</a> incluye un sistema de exportación y de importación, de modo que se pueden hacer copias de seguridad manuales por si en algún momento queremos hacer alguna modificación arriesgada al plugin o simplemente migrar a otro servidor.</p>
<p><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.30.19.png" rel="lightbox-4796"><img class="alignleft size-thumbnail wp-image-4826 leftimage" title="Restaurar una copia de seguridad de WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.30.19-230x130.png" alt="Restaurar una copia de seguridad de WP Carousel 1.0" width="100" height="56" /></a><a href="../wp-carousel">WP Carousel</a> 1.0 le da un repaso esta función y la reinventa. A partir de ahora cada cambio que hagamos quedará registrado y podremos retroceder a cualquier punto anterior con tan sólo un par de clics.</p>
<p><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.30.11.png" rel="lightbox-4796"><img class="alignleft size-thumbnail wp-image-4820 leftimage" title="Lista de copias de seguridad de WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.30.11-230x130.png" alt="Lista de copias de seguridad de WP Carousel 1.0" width="230" height="130" /></a><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.30.30.png" rel="lightbox-4796"><img class="alignright size-thumbnail wp-image-4822 rightimage" title="Opciones personalizadas del theme en una copia de seguridad de WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.30.30-230x130.png" alt="Opciones personalizadas del theme en una copia de seguridad de WP Carousel 1.0" width="230" height="130" /></a>El sistema es muy sencillo de entender. Cada vez que se pulsa el botón de guardar cambios, se crea una copia del contenido actual del carrusel y se añade a la matriz de copias de seguridad. Desde el gestor de Copias de Seguridad podemos ver las copias almacenadas, previsualizar el estado del carrusel (podemos ver tanto los elementos del carrusel como su configuración &#8211; a nivel general y a nivel de theme) y restaurar el carrusel a ese momento con tan sólo un clic. También podemos ocultar de la tabla los carruseles que no nos interesen y nos aparecerán por su nombre, de manera que es muy fácil identificarlos.</p>
<p><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.28.58.png" rel="lightbox-4796"><img class="alignleft size-thumbnail wp-image-4819 leftimage" title="Importación a Prueba de Fallos de WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.28.58-230x130.png" alt="Importación a Prueba de Fallos de WP Carousel 1.0" width="230" height="130" /></a><a href="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.29.11.png" rel="lightbox-4796"><img class="alignright size-thumbnail wp-image-4824 rightimage" title="Eliminar las copias de seguridad de WP Carousel 1.0" src="http://sumolari.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-14-a-las-20.29.11-230x130.png" alt="Eliminar las copias de seguridad de WP Carousel 1.0" width="230" height="130" /></a>Aunque de todos modos la opción de código de exportación sigue presente, y su funcionamiento es idéntico al de las versiones anteriores.</p>
<p>Como es de suponer, el Gestor de Copias de Seguridad puede ser algo excesivo en muchos casos, así que se puede desactivar modificando una constante del archivo wp-carousel.php, una modificación que se hace en un par de segundos. También se pueden borrar las copias de seguridad para dejar más espacio a nuevas copias, desde la página de desinstalación.</p>
<p>Es un sistema muy fácil de usar y muy cómodo, ya que no requiere atención alguna por nuestra parte hasta el momento en el que lo queramos usar.</p>
<h3>Los campos personalizados y los nombres de las opciones</h3>
<p>Algunos usuarios me habían comentado la posibilidad de cambiar el campo personalizado del que <a href="../wp-carousel">WP Carousel</a> sacaba las imágenes. Yo estuve dando vueltas a cómo añadir esa posiblidad de forma sencilla y decidí que lo más fácil de todo era permitir cambiar el nombre de los campos personalizados modificando el archivo wp-carousel.php. Tan sólo es necesario modificar una línea del plugin para cambiar los campos que «leerá» <a href="../wp-carousel">WP Carousel</a>. Del mismo modo, se pueden cambiar las opciones en las que almacena <a href="../wp-carousel">WP Carousel</a> los elementos del carrusel, la configuración de cada carrusel y las copias de seguridad.</p>
<p>También algunos usuarios tuvieron problemas con el plugin cuando tenían muchos artículos publicados. He añadido la posiblidad de deshabilitar algunos contenidos para el carrusel, de modo que no se cuelgue la página de opciones del carrusel si se tiene mucho contenido publicado.</p>
<h3>Nuevas APIs</h3>
<p>He revisado y reescrito las APIs de Themes y de Extras, y vienen cargadas de novedades. En cuanto a Themes, se mantiene la retrocompatibilidad, de modo que los themes diseñados para <a href="../wp-carousel">WP Carousel</a>0.5 son compatibles con <a href="../wp-carousel">WP Carousel</a> 1.0 (aunque no soportarán todas las opciones de la nueva versión). Los Themes admiten ahora una opciones personalizadas, que se muestran en la página de opciones de cada carrusel y se guardan al vuelo como el resto de opciones de <a href="../wp-carousel">WP Carousel</a>.</p>
<p>El theme por defecto clásico de <a href="../wp-carousel">WP Carousel</a> se ha revonado con opciones tan interesantes como poder mostrar el título en lugar de la descripción del elemento, o mostrar el texto a un lado de la imagen (el que prefieras) en lugar de debajo. También soporta múltiples colores, desde el gris y el azul hasta el rojo y el verde.</p>
<p>Además <a href="../wp-carousel">WP Carousel</a> incluye 4 nuevos themes. Además del theme clásico y el theme adaptado a la sidebar, he añadido un theme vacío para usarse como plantilla para futuras creaciones. También he creado tres nuevos themes basados <a href="http://365psd.com/day/230/">en</a> <a href="http://365psd.com/day/289/">excelentes</a> <a href="http://365psd.com/day/225/">diseños</a>.</p>
<p>La API de Extras también está totalmente reescrita y actualizada. El primer problema que he resuelto es que la API anterior no permitía mostrar grupos de elementos, es decir, un Extra te permitía añadir un elemento (como un artículo individual), pero no un conjunto de elementos (como una categoría, que se transforma en diversos artículos al mostrarse en el carrusel). En segundo lugar me he centrado en permitir más opciones en los extras. Hasta ahora el usuario sólo podía comunicarse con el Extra a través de un único campo de texto. Ahora los Extras pueden mostrar listas desplegables, campos de texto&#8230;</p>
<p>Además he expandido la API de Extras para que se puedan añadir Extras a <a href="../wp-carousel">WP Carousel</a> sin tener que copiar archivos dentro de la carpeta de Extras, es decir, con la nueva API los creadores de otros plugins pueden incluir dentro de su plugin el código necesario para que WP Carousel detecte los nuevos contenidos creados con estos y puedas añadirlos al carrusel sin tocar ni una sola línea de código.</p>
<p>La API de Extras es muy similar a la anterior. De hecho me he basado en la API anterior, sólo que la he expandido y he añadido las opciones personalizadas de la API de Themes. Ambas APIs las he desarrollado a la vez, así que veréis que tienen muchos puntos en común y que aprender a usar una es sinónimo de conocer la mayor parte de la otra.</p>
<p>Pero para explicar el funcionamiento de estas APIs necesito algo de tiempo para redactar la documentación, así que de momento no diré nada más sobre este punto.</p>
<h3>Beta 1 disponible</h3>
<p>Con tantos cambios he decidido que es mejor no lanzar directamente la versión 1.0 sin pasar antes por un periodo de pruebas. Yo he hecho unas cuantas pruebas, pero como siempre, es mejor que lo pruebe más gente antes de darle el visto bueno.</p>
<p>La Beta 1 estará disponible en breve (minutos, horas en el peor de los casos) en <a href="http://wordpress.org/extend/plugins/wp-carousel/download/">WordPress.org</a>. Os recomiendo que hagáis una copia de seguridad del contenido de vuestros carruseles, actualicéis a la Beta y la probéis un rato.</p>
<p>¡Seguro que luego no querréis volver a la versión anterior!</p>
]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/presentando-wp-carousel-1-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Los themes más rápidos de WordPress</title>
		<link>http://sumolari.com/los-themes-mas-rapidos-de-wordpress/</link>
		<comments>http://sumolari.com/los-themes-mas-rapidos-de-wordpress/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 19:23:42 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[gráficos]]></category>
		<category><![CDATA[themes]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=4784</guid>
		<description><![CDATA[Anteayer me envió un email Alwyn Botha dándome a conocer el proyecto en el que ha trabajado durante las dos últimas semanas: una serie de estadísticas y datos sobre el tiempo de carga y las consultas SQL de los 430 themes de WordPress que se actualizaron durante los últimos 365 días. Los datos son, cuanto [...]]]></description>
			<content:encoded><![CDATA[<p>Anteayer me envió un email <a href="http://www.123milliseconds.com">Alwyn Botha</a> dándome a conocer el proyecto en el que ha trabajado durante las dos últimas semanas: una serie de estadísticas y datos sobre el tiempo de carga y las consultas SQL de los 430 themes de <a href="http://sumolari.com/category/wordpress/">WordPress</a> que se actualizaron durante los últimos 365 días.</p>
<p>Los datos son, cuanto menos, curiosos. No creo que pueda resumir brevemente los resultados: es mucho mejor explorar cada uno a sus anchas los distintos datos que nos ofrece en <a href="http://www.123milliseconds.com/wordpress-themes/wp-themes-load-time-averages.htm">su web</a> o usar <a href="http://www.123milliseconds.com/wordpress-themes/measurement-results.htm">la tabla interactiva</a> para consultar algún theme en especial.</p>
<p>A modo de resumen, os dejo unas gráficas que muestran a grandes rasgos el tiempo de carga medio y las consultas SQL que podréis encontrar en la mayoría de los themes de <a href="../category/wordpress/">WordPress</a>.</p>

<a href='http://sumolari.com/los-themes-mas-rapidos-de-wordpress/wordpress-themes-dynatrace-js/' title='wordpress-themes-dynatrace-js'><img width="230" height="130" src="http://sumolari.com/wp-content/uploads/2011/02/wordpress-themes-dynatrace-js-230x130.png" class="attachment-thumbnail" alt="wordpress-themes-dynatrace-js" title="wordpress-themes-dynatrace-js" /></a>
<a href='http://sumolari.com/los-themes-mas-rapidos-de-wordpress/wordpress-themes-dynatrace-render/' title='wordpress-themes-dynatrace-render'><img width="230" height="130" src="http://sumolari.com/wp-content/uploads/2011/02/wordpress-themes-dynatrace-render-230x130.png" class="attachment-thumbnail" alt="wordpress-themes-dynatrace-render" title="wordpress-themes-dynatrace-render" /></a>
<a href='http://sumolari.com/los-themes-mas-rapidos-de-wordpress/wordpress-themes-ff-y-p-time/' title='wordpress-themes-ff-y-p-time'><img width="230" height="130" src="http://sumolari.com/wp-content/uploads/2011/02/wordpress-themes-ff-y-p-time-230x130.png" class="attachment-thumbnail" alt="wordpress-themes-ff-y-p-time" title="wordpress-themes-ff-y-p-time" /></a>
<a href='http://sumolari.com/los-themes-mas-rapidos-de-wordpress/wordpress-themes-pagesize/' title='wordpress-themes-pagesize'><img width="230" height="130" src="http://sumolari.com/wp-content/uploads/2011/02/wordpress-themes-pagesize-230x130.png" class="attachment-thumbnail" alt="wordpress-themes-pagesize" title="wordpress-themes-pagesize" /></a>
<a href='http://sumolari.com/los-themes-mas-rapidos-de-wordpress/wordpress-themes-yslow-requests/' title='wordpress-themes-yslow-requests'><img width="230" height="130" src="http://sumolari.com/wp-content/uploads/2011/02/wordpress-themes-yslow-requests-230x130.png" class="attachment-thumbnail" alt="wordpress-themes-yslow-requests" title="wordpress-themes-yslow-requests" /></a>

]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/los-themes-mas-rapidos-de-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quality Control: Un theme para WordPress para gestionar nuestros proyectos</title>
		<link>http://sumolari.com/quality-control-un-theme-para-wordpress-para-gestionar-nuestros-proyectos/</link>
		<comments>http://sumolari.com/quality-control-un-theme-para-wordpress-para-gestionar-nuestros-proyectos/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 13:35:42 +0000</pubDate>
		<dc:creator>Sumolari</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[descargas]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[themes]]></category>

		<guid isPermaLink="false">http://sumolari.com/?p=4457</guid>
		<description><![CDATA[Uno de los problemas a los que te enfrentas cuando llevas a cabo un proyecto es cómo recibir y gestionar las sugerencias y los problemas de los usuarios. Yo me he decantado por crear un foro sólo para dar soporte a mis proyectos, sin embargo vía Twitter descubro una forma algo más cómoda de llevar [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sumolari.com/wp-content/uploads/2010/08/Captura-de-pantalla-2010-08-30-a-las-15.34.14.png" rel="lightbox-4457"><img class="leftimage alignleft size-medium wp-image-4458" title="Preview de Quality Control" src="http://sumolari.com/wp-content/uploads/2010/08/Captura-de-pantalla-2010-08-30-a-las-15.34.14-300x162.png" alt="Preview de Quality Control" width="300" height="162" /></a>Uno de los problemas a los que te enfrentas cuando llevas a cabo un proyecto es cómo recibir y gestionar las sugerencias y los problemas de los usuarios. Yo me he decantado por crear un foro sólo para dar soporte a mis proyectos, sin embargo vía <a href="http://twitter.com/smashingmag/status/22429882049">Twitter</a> descubro una forma algo más cómoda de llevar el avance de los proyectos.</p>
<p>Se trata de <a href="http://wefunction.com/2010/08/quality-control-theme/">Quality Control</a>, un theme para <a href="http://sumolari.com/category/wordpress/">WordPress</a> pensado especialmente para usarse para estos fines. Permite crear de una forma cómoda un sistema de gestión de tickets, ordenados por estados, categorías, etiquetas y ramas. Sin duda de lo más útil para gestionar los bugs que vayan apareciendo en nuestros proyectos.</p>
<p>Además de un excelente diseño y una gran utilidad, este theme tiene otro punto a su favor: es totalmente gratuito y podéis <a href="http://spencerfinnell.com/quality-control-theme/">descargarlo gratis</a> o ver <a href="http://spencerfinnell.com/lab/pt/quality/">la demo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sumolari.com/quality-control-un-theme-para-wordpress-para-gestionar-nuestros-proyectos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

