Oferta SiteGround Black Friday

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.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 2

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿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. ¡Ah! ¿te funciona? pues entonces no he dicho nada :)

Sobre el autor

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 *

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio