Cómo integrar los comentarios de un blog WordPress en una página web
Hace algún tiempo instalé un blog de WordPress en mi página del Camino de Santiago, pretendiendo a partir de él, crear una sección de noticias con los posts etiquetados como noticias dentro de la página. En la siguiente imagen comprederéis perfectamente lo que quería hacer:
Quería por tanto poder integrar los posts escritos en el blog en cualquier parte de mi página. Para llevar a cabo este desarrollo utilicé alguna de las funciones que nos da la Api de WordPress. El truco está en que todas las categorias del blog tienen un feed rss a partir del cual podemos seleccionar los artículos deseados.
El código necesario para mostrar los posts de una categoria sería el siguiente:
<?php $URL_BLOG = "http://todosloscaminosdesantiago.com/blog/general/noticias/"; $URL_FEED = "http://todosloscaminosdesantiago.com/blog/general/noticias/feed/"; $URL_TITLE = "Leer todas las Noticias del Camino de Santiago"; $FEED_TITLE = "Noticias del Camino de Santiago"; include "plantillas/noticias.php"; ?> |
El código que mostraria los artículos estaría en noticias.php:
<?php //Incluimos las Apis de Wordpress require('./blog/wp-blog-header.php'); require_once('blog/wp-includes/rss.php'); function rss_clean_html($text = "") { $especial=array('á','é','í','ó','ú','ñ','Á','É','Í','Ó','Ú','Ñ','€'); $traducir=array('á','é','í','ó','ú','ñ','Á','É','Í','Ó','Ú','Ñ','€'); $text= str_replace($especial,$traducir,$text); unset($especial); unset($traducir); $text = utf8_decode($text); return $text; } // Insertar la url del feed $rss = @fetch_rss($URL_FEED); // Recorremos todos los posts if ( isset($rss->items) && 0 != count($rss->items) ) { ?> <div style="display: block;" id="feedWidget"> <div class="" id="feedWidgetTitle"> <h2 class="enlinea"><?=$FEED_TITLE?></h2> <a href="<?=$URL_FEED?>"> <img src="imagenes/feed-min.gif" alt="feed rss" border="0" /></a> </div> <div class="feedWidgetLine"></div> <div id="feedWidgetTabContent"> <? // Mostramos los últimos 4 posts $rss->items = array_slice($rss->items, 0, 4); foreach ($rss->items as $item ) { $pubDate = date_i18n( get_option('date_format'), strtotime( $item['pubdate'] ) ); echo '<div>'; echo $pubDate .': <a href="' . wp_filter_kses($item['link']) . '">' . rss_clean_html(wp_specialchars($item['title'])) . '</a>'; echo '</div>'; } echo " </div><a style=\"color:white;text-decoration: underline;\" href=\"$URL_BLOG\">$URL_TITLE</a> </div>"; }else{ ?> <div style="display: block;" id="feedWidget"> <div class="" id="feedWidgetTitle"><h2 class="enlinea"><?=$FEED_TITLE?></h2></div> <div class="feedWidgetLine"></div> <div id="feedWidgetTabContent"> <div>No hay Noticias</div> </div> </div> <?php } ?> |
Espero que les sea de utilidad
Hola! este archivo como se tiene q llamar?
GRACIAS!
el primero….
///////php
$URL_BLOG = “http://todosloscaminosdesantiago.com/blog/general/noticias/”;
$URL_FEED = “http://todosloscaminosdesantiago.com/blog/general/noticias/feed/”;
$URL_TITLE = “Leer todas las Noticias del Camino de Santiago”;
$FEED_TITLE = “Noticias del Camino de Santiago”;
include “plantillas/noticias.php”;
?>
no entiendo tu pregunta GASTON 🙂
Aitor, si no me dices que error te da no podré ayudarte.
Lo más seguro al haber copiado el código tal cual es que no tengas bien cargadas las APIS de WordPress. Las mias estaban en /blog
Un saludo