17 septiembre 2011 0 Comments

Crear widget exportable a otras páginas web con el contenido de tu wordpress

RSS Widget WordPress
Para crear el widget hay 2 pasos fundamentales.

  • Crear un canal RSS con el contenido que deseas exportar
  • Crear el widget, puedes usar uno de las muchas aplicaciones online disponibles o simplemente programarlo

Para el primer paso debemos especificar a wordpress que queremos crear un nuevo canal feed RSS, este canal aparecera con la siguiente extrucutura URL:

http://www.ejemplo.com/?feed=ejemplo

http://www.ejemplo.com/feed/ejemplo/

Para ello creamos las siguientes funciones:

function mostrar_feed() {
echo "hola mundo";
}
function incluir_feed() {
	add_feed('publicadas', 'mostrar_feed');
}
 
add_action('init','incluir_feed');


Esto podemos incluirlo como plugin o dentro del archivo functions.php de nuestro theme.

Ahora dentro de la funcion mostrar_feed() indicamos el contenido RSS que queremos crear, aqui un ejemplo del codigo que he usado para http://www.partidarios.com/?feed=publicadas:

function mostrar_feed($comment) {
	echo '
	<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>Partidarios</title>
	<atom:link href="http://www.partidarios.com/?feed=publicadas" rel="self" type="application/rss+xml" />
	<link>http://www.partidarios.com</link>
	<description>Feed con las ultimas publicadas de los partidos politicos.</description>
	<lastBuildDate>Sat, 17 Sep 2011 09:45:25 +0000</lastBuildDate>
 
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>';
                $the_query = new WP_Query(array( 'cat' => 27, 'meta_key' => 'publicada', 'meta_value' => '1' ));
				while ($the_query->have_posts()) : $the_query->the_post();
					$id_partido2 = get_post_custom_values('id_partido'); $id_partido = $id_partido2[0];				
					$facebook = get_post_custom_values('facebook', $id_partido);
					$partido = get_the_title($id_partido);
					$mensaje = get_the_title();
					if(strlen($mensaje) > 245)
					{
						$mensaje = substr($mensaje,0,245).'...';
					}
					echo "\n<item>\n";
					echo "<title>$partido: $mensaje</title>\n";
					echo "<link>".get_permalink(get_the_ID())."</link>\n";
					echo "<comments>".get_permalink(get_the_ID())."#comments</comments>\n";
					echo "<pubDate>".get_the_date('D, d M Y H:i:s O')."</pubDate>\n";
					echo "		<dc:creator>admin</dc:creator>\n
						<category><![CDATA[Mensaje]]></category>\n";
					echo '<guid isPermaLink="false">'.get_permalink(get_the_ID())."</guid>\n";
					echo "<description><![CDATA[]]></description>\n";
					echo "<content:encoded><![CDATA[]]></content:encoded>\n";
					echo "</item>\n\n";
				endwhile;
	echo "
	</channel>
</rss>";
}

Por ultimo podemos emplear una de las muchas aplicaciones online que genera widgets a partir de archivos RSS. Una de las más sencillas es http://www.widgeteasy.com

Artículos relacionados:

  1. Crear y configurar un widget de wordpress Para crear un widget con wordpress solo debemos definirlo en...
  2. 5 paginas web sobre SEO que deberias seguir Lo cierto es que las paginas web son una de...
  3. Crear Plantillas de themes para post en WordPress Podemos crear una plantilla para publicar post especificos en wordpress...

Leave a Reply