Obtener los 5 últimos posts del tipo de entrada personalizado 'announcements'

21 ago 2011, 21:15:00
Vistas: 16K
Votos: 3

Tengo un tipo de entrada personalizado announcements que obviamente contiene publicaciones con anuncios semanales.

En el encabezado de mi tema, quiero crear un cuadro con la siguiente estructura:

<div id="header-announcements">
    <h3>Anuncios</h3>
        <ul>
            <li><a href="enlace-permanente-del-post">Título</a></li>
            <li><a href="enlace-permanente-del-post">Título</a></li>
            <li><a href="enlace-permanente-del-post">Título</a></li>
            <li><a href="enlace-permanente-del-post">Título</a></li>
            <li><a href="enlace-permanente-del-post">Título</a></li>
        </ul>
    <div><a href="#">Ver más</a></div>
</div>

Sé que quiero usar WP_Query() y he encontrado que debería hacer algo similar a:

$ann_query = new WP_Query('post_type=announcements&posts_per_page=5');

Sé que necesito hacer un foreach, pero no he profundizado lo suficiente en WordPress para saber qué hacer después de la consulta.

¿Alguna ayuda?

¡Gracias!

1
Comentarios

Necesitarás llamar al bucle y extraer la información de cada publicación, por ejemplo, the_title(), etc. Además, primero verifica si hay algún resultado o no usando la función have_posts()

Assad Nazar Assad Nazar
21 ago 2011 21:42:28
Todas las respuestas a la pregunta 2
3

Lo siguiente debería funcionar, pero no ha sido probado:

<div id="header-announcements">
<h3>Anuncios</h3>
<?php
$queryObject = new WP_Query( 'post_type=announcements&posts_per_page=5' );
// El Loop!
if ($queryObject->have_posts()) {
    ?>
    <ul>
    <?php
    while ($queryObject->have_posts()) {
        $queryObject->the_post();
        ?>

        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php
    }
    ?>
    </ul>
    <div><a href="#">Ver más</a></div>
    <?php
}
?>
</div>
21 ago 2011 22:19:40
Comentarios

¡Muchas gracias! Esto funcionó perfectamente, aunque al copiar y pegar, arrojó un error de PHP, pero se solucionó fácilmente al agregar <?php en la línea 15 de tu bloque de código. ¡Gracias de nuevo!

Josh Allen Josh Allen
22 ago 2011 07:08:37

¡Ups! Gracias por arreglarlo. Eso es lo que pasa por no probar :)

helenhousandi helenhousandi
22 ago 2011 18:10:36

¡Gracias! Esto fue súper útil y mucho más elegante que otras soluciones que he visto. Aunque una queja: cuando se coloca dentro de una publicación, no puede filtrar la publicación en la que está dentro de la lista. ¡Por lo demás, es genial!

Aslan French Aslan French
28 nov 2018 04:42:02
0
-1

Necesitarás usar un bucle foreach ya que esta consulta devuelve un array de objetos, dentro de este bucle puedes usar las propiedades de estos objetos para mostrar los datos. Por ejemplo, puedes usar:

$object->post_title, $object->post_content, $object->url
21 ago 2011 22:09:43