Mostrar el «loop» de WordPress fuera de WordPress

WordPress loop

La verdad es que se me ocurren pocas cosas tan locas cómo querer mostrar el loop de un WordPress en un sitio que no esté hecho con WordPress, pero vaya, que aún hay gente que tiene webs creadas con PHP o HTML a capón.

Pero bueno, que poder hacerse se puede … 

Simplemente tendrías que insertar el siguiente código donde quieras que se muestren las entradas del loop de un WordPress:

<?php
  // Incluyendo la cabecera necesaria de WordPress
  define('WP_USE_THEMES', false);
  global $wpdb;
  require('/servidor/ruta/completa/de/tu/sitio/wordpress/htdocs/blog/wp-blog-header.php');
  query_posts('posts_per_page=1');
?>
// Y ahora ya podemos mostrar el loop del WP elegido
<?php while (have_posts()): the_post(); ?>
   <h2><?php the_title(); ?></h2>
   <?php the_excerpt(); ?>
   <p><a href="<?php the_permalink(); ?>" class="red">Sigue leyendo...</a></p>
<?php endwhile; ?>

Unas breves notas:

  1. Cambia la ruta definida en la línea 5 a la real donde esté la instalación del WordPress de origen
  2. Puedes cambiar la línea 11 para mostrar entradas completas en vez de extractos cambiando the_excerpt por the_content

Este estupendo truco se publicó en CSS tricks

Una solución alternativa, que vi hace tiempo en WordPress Latino es valerte del RSS. Lo que harías sería crear un código cómo este para mostrar el contenido de un WordPress:

<ul>
	<?php if(function_exists('fetch_feed')) {

        include_once(ABSPATH . WPINC . '/feed.php');               //
        $feed = fetch_feed('http://ayudawordpress/tag/Principiante/feed'); // URL de Feed a mostrar

        $limit = $feed->get_item_quantity(3); // Numero de entradas a mostrar
        $items = $feed->get_items(0, $limit); // cargando las entradas encontrados en un array

    }
    if ($limit == 0) echo '<div>No hay feed.</div>'; // si no existe feed
    else foreach ($items as $item) : ?>

    <li>
        <a  class="titublog" href="<?php echo $item->get_permalink(); ?>"
          title="<?php echo $item->get_date('j F Y @ g:i a'); ?>">
            <?php echo $item->get_title(); ?>
        </a>
         <p> <!--// muestra la categoria-->
            <strong> En:</strong> <?php if ($category = $item->get_category())
                {
                    echo $category->get_label();
                } ?> <br />

            <!--// muestra fechas de publicación-->
            <strong>El: </strong><?php echo $item->get_date('F jS, Y'); ?> <br />

            <!--// muestra el nombre del autor-->
            <strong>Por: </strong><?php if ($author = $item->get_author())
                {
                    echo $author->get_name();
                }
             ?>
     	</p>

         <!--//muestra la imagen destacada, si es que lo hay-->
			 <? if ($enclosure = $item->get_enclosure())
                {
                    echo $enclosure->get_thumbnail();
                }
             ?>
    </li>

<?php endforeach; ?>
</ul>

Luego lo tuneas a tu gusto, pero siempre cambia la línea 5, donde está el feed a recuperar, que en este ejemplo es del archivo de una tag.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(2 votos, promedio: 5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

3 comentarios en “Mostrar el «loop» de WordPress fuera de WordPress”

  1. Umm, interesante, y si solo se querria mostrar las entradas de una categoría especifica, sin usar el rss, osea con el primer paso?

  2. Llevo mucho tiempo intentando conseguir la «imagen destacada» de esta manera, vía RSS, desde una web externa. Nunca he encontrado una manera y la que ofrecéis no me funciona. Está vacío y las entradas de las que cojo la información sí tienen imagen destacada:

    SimplePie_Enclosure Object
    (
    [bitrate] =>
    [captions] =>
    [categories] =>
    [channels] =>
    [copyright] =>
    [credits] =>
    [description] =>
    [duration] =>
    [expression] =>
    [framerate] =>
    [handler] =>
    [hashes] =>
    [height] =>
    =>
    [keywords] =>
    [lang] =>
    [length] =>
    [link] =>
    [medium] =>
    [player] =>
    [ratings] =>
    [restrictions] => Array
    (
    [0] => SimplePie_Restriction Object
    (
    [relationship] => allow
    [type] =>
    [value] => default
    )

    )

    [samplingrate] =>
    [thumbnails] =>
    [title] =>
    [type] =>
    [width] =>
    )

    ¿Alguna idea? ¡Gracias!

  3. Juan Santiago Ruetter

    Frenando, esto no es nada loco, tb me sirve para poner un feed fuera de las barras laterales, ¿y si en realidad lo que quiero es un agregador? tener los loops o feeds de varios worpdress (intercalados) con un código similar a este.

    No te digo que te ganas el cielo si lo publicas por que no dispongo de parcelas pero un poco de difusión y agradecimiento se garantiza. 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido