Mostrar últimos post de wordpress desde otro sitio web

Mostrar últimos post de wordpress desde otro sitio web

He estado buscando un script que me muestre los últimos post de mi blog en este caso WordPress, para poner en mi sitio web que se encuentrar en otro hosting, los script que he encontrado solo funcionan si el worpress esta instalado en el hosting en donde se encuentra mi sitio web.

Como digo hay veces, que es más fácil crearlo que comprarlo, me puse ha investigar y pude hacerlo, bien ahora les explico.

En el Hosting 1 se encuentra instalado el wordpress, la url sera: http://www.miblog.com

en el Hosting 2 esta mi sitio web en donde quiero mostrar los últimos post, url: http://www.misitioweb.com

Creamos un archivo de nombre ultimosPost.php pegamos este codigo:

<?php require('wp-config.php');
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="utf-8"?>';
query_posts('showposts=5');
if(have_posts()) : ?>
<contenido>
<tituloBlog>Titulo del  Blog</tituloBlog>
<enlaceBlog>http://www.miblog.com</enlaceBlog>
<?php while(have_posts()) : the_post();
?>
<post>
<titulo><?php the_title(); ?></titulo>
<enlace><?php the_permalink();?></enlace>
<texto><?php
$extracto = strip_tags(get_the_content());
$n = strlen($extracto);
$text_max = 80;
if($n > $text_max){
$extracto = substr($extracto,0,$text_max).'...';
}
echo $extracto;
?></texto>
</post>
<?php endwhile;?>
<?php endif; ?>
</contenido>

Lo que estamos haciendo es generar un archivo xml, que refleja la estructura que queremos mostrar, al final si ejecutamos

http://www.miblog.com/ultimosPost.php  se mostraria asi:

<contenido>
<tituloBlog>Titulo de mi Blog</tituloBlog>
<enlaceBlog>Enlace de mi blog</enlaceBlog>
<post>
<titulo>Titulo de mi Post</titulo>
<enlace>Enlace del Post</enlace>
<texto>Descripcion breve del Post</texto>
</post>
</contenido>

Ahora debemos crear otro archivo para que podamos leer el archvio xml generado, pongamosle de nombre mostrarUltimosPost.php y pegamos el código:

<style>
#ultimos_post {
color: #000000;
font-family: arial;
font-size: 12px;
width: 250px;
height:298px;
}
#ultimos_post a{
font-weight:700;
color:#0202BF;
}
#ultimos_post h3, #ultimos_post h4,#ultimos_post ul{
padding:0;
margin:0;
}
#ultimos_post ul{
overflow-y:auto;
height:272px;
}
#ultimos_post h3{
text-align:center;
font-size:16px;
}
#ultimos_post h3 a{
text-decoration:none;
color:#000;
}
#ultimos_post ul{
-moz-border-radius: 5px 5px 5px 5px;
border: 1px solid #AFAFAF;
list-style: none outside none;
padding: 4px 0 2px 4px;
height:auto;
}
#ultimos_post ul li{
padding: 2px 2px 2px 0px;
}
</style>
<?php
 
if( $xml = simplexml_load_file("http://www.miblog.com/ultimosPost.php") ){
echo  '<div id="ultimos_post">';
echo  '<h3><a target="_blank" title="'.$xml->tituloBlog[0].'" href="'.$xml->enlaceBlog[0].'">'.$xml->tituloBlog[0].'</a></h3>';
echo  '<ul>';
for($i=0; $i < count($xml->post); $i++){
echo  '<li><span><a target="_blank" title="'.$xml->post[$i]->titulo.'" href="'.$xml->post[$i]->enlace.'">'.$xml->post[$i]->titulo.'</a></span>';
echo '<div>'.$xml->post[$i]->texto.'</div></li>';
}
echo '</ul></div>';
}
 
?>

Primero ponemos algo de estilos para que se vea algo presentable, luego con la magia de php obtenemos el documento xml en un objeto,

con la funcion simplexml_load_file donde le pasamos como argumento la ruta de nuestro archivo xml, como propiedades seran los nombres de las etiquetas del xml

Ejemplo: $xml->tituloBlog[0] me retornara el titulo del Blog, ahora $xml->post me devuelve un array de los Post por eso hacemos el recorrido y con echo lo imprimimos.

Una vez hecho esto lo subimos al Hosting 2 donde se encuentra mi sitio web, lo ejecutamos http://www.misitioweb.com/mostrarUltimosPost.php

Si todo resulto bien deberia salir como en la imagen.

mostrar ultimos post desde otro sitio web

Eso es todo por hoy, si tienen dudas las pueden dejar en los comentarios, hasta la próxima.