Ottenere gli ultimi 5 post dal tipo di post personalizzato 'announcements'

21 ago 2011, 21:15:00
Visualizzazioni: 16K
Voti: 3

Ho un custom post type announcements che ovviamente contiene post con annunci settimanali.

Nell'header del mio tema, voglio creare un box con la seguente struttura:

<div id="header-announcements">
    <h3>Annunci</h3>
        <ul>
            <li><a href="permalink-post">Titolo</a></li>
            <li><a href="permalink-post">Titolo</a></li>
            <li><a href="permalink-post">Titolo</a></li>
            <li><a href="permalink-post">Titolo</a></li>
            <li><a href="permalink-post">Titolo</a></li>
        </ul>
    <div><a href="#">Vedi tutti</a></div>
</div>

So che devo usare wp_query() e ho scoperto che dovrei fare qualcosa di simile a:

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

So che devo fare un foreach, ma non sono ancora entrato abbastanza nel dettaglio di WordPress per sapere cosa fare dopo la query.

Qualche aiuto?

Grazie!

1
Commenti

Dovrai chiamare il loop ed estrarre le informazioni per ogni post, ad esempio the_title() ecc. Inoltre, controlla prima se ci sono risultati o meno utilizzando la funzione have_posts()

Assad Nazar Assad Nazar
21 ago 2011 21:42:28
Tutte le risposte alla domanda 2
3

Il seguente codice dovrebbe funzionare, ma non è stato testato:

<div id="header-announcements">
<h3>Annunci</h3>
<?php
$queryObject = new WP_Query( 'post_type=announcements&posts_per_page=5' );
// Il 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="#">Vedi tutti</a></div>
    <?php
}
?>
</div>
21 ago 2011 22:19:40
Commenti

Grazie mille! Ha funzionato perfettamente, però quando ho copiato e incollato, ha generato un errore PHP, ma è stato facilmente risolto aggiungendo <?php alla riga 15 del tuo blocco di codice. Grazie ancora!

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

Ops! Grazie per averlo sistemato. Ecco cosa succede quando non testo il codice :)

helenhousandi helenhousandi
22 ago 2011 18:10:36

Grazie! È stato utilissimo e molto più elegante di altre soluzioni che ho visto. Anche se c'è un piccolo problema: quando viene inserito in un articolo, non riesce a escludere l'articolo stesso dalla lista. Per il resto è fantastico!

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

Dovrai utilizzare un ciclo foreach poiché questa query restituisce un array di oggetti. All'interno di questo ciclo puoi utilizzare le proprietà di questi oggetti per mostrare i dati. Ad esempio puoi usare:

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