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:
- Cambia la ruta definida en la línea 5 a la real donde esté la instalación del WordPress de origen
- Puedes cambiar la línea 11 para mostrar entradas completas en vez de extractos cambiando
the_excerpt
porthe_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.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Umm, interesante, y si solo se querria mostrar las entradas de una categoría especifica, sin usar el rss, osea con el primer paso?
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:
¿Alguna idea? ¡Gracias!
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. 🙂