Obține ultimele 5 postări din tipul personalizat 'announcements'

21 aug. 2011, 21:15:00
Vizualizări: 16K
Voturi: 3

Am un custom post type announcements care evident conține postări cu anunțuri săptămânale.

În antetul temei mele, vreau să creez o casetă cu următoarea structură:

<div id="header-announcements">
    <h3>Anunțuri</h3>
        <ul>
            <li><a href="post-permalink">Titlu</a></li>
            <li><a href="post-permalink">Titlu</a></li>
            <li><a href="post-permalink">Titlu</a></li>
            <li><a href="post-permalink">Titlu</a></li>
            <li><a href="post-permalink">Titlu</a></li>
        </ul>
    <div><a href="#">Vezi mai multe</a></div>
</div>

Știu că trebuie să folosesc wp_query() și am aflat că ar trebui să fac ceva similar cu:

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

Știu că trebuie să folosesc un foreach, dar nu am aprofundat suficient WordPress pentru a ști ce să fac după query.

Poți să mă ajuți?

Mulțumesc!

1
Comentarii

Va trebui să apelezi bucla și să extragi informațiile pentru fiecare articol, de ex. the_title() etc. De asemenea, verifică mai întâi dacă există vreun rezultat sau nu folosind funcția have_posts()

Assad Nazar Assad Nazar
21 aug. 2011 21:42:28
Toate răspunsurile la întrebare 2
3

Următorul cod ar trebui să funcționeze, dar nu a fost testat:

<div id="header-announcements">
<h3>Anunțuri</h3>
<?php
$queryObject = new WP_Query( 'post_type=announcements&posts_per_page=5' );
// Bucla!
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="#">Vezi mai multe</a></div>
    <?php
}
?>
</div>
21 aug. 2011 22:19:40
Comentarii

Mulțumesc mult! A funcționat perfect, dar când am copiat și lipit codul, a generat o eroare PHP, care a fost ușor de remediat prin adăugarea lui <?php la linia 15 din blocul tău de cod. Mulțumesc din nou!

Josh Allen Josh Allen
22 aug. 2011 07:08:37

Hopa! Mersi că ai reparat asta. Așa mi se întâmplă când nu testez :)

helenhousandi helenhousandi
22 aug. 2011 18:10:36

Mulțumesc! Acest lucru a fost extrem de util și mult mai elegant decât alte soluții pe care le-am văzut. Totuși, o mică observație: când este plasat într-un articol, nu poate filtra articolul în care se află din listă. În rest, este minunat!

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

Va trebui să folosești o buclă foreach deoarece această interogare returnează un array de obiecte. În interiorul acestei bucle poți folosi proprietățile acestor obiecte pentru a afișa datele. De exemplu, poți folosi:

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