it-swarm.com.de

Ermitteln Sie in "the loop", ob ein Beitrag der neueste ist

Gibt es in "the loop" in WordPress eine einfache Möglichkeit, festzustellen, ob ein Beitrag der neueste ist? Ein Anwendungsbeispiel: Ich möchte, dass der erste Beitrag anstelle eines H2 ein H1 für den Titel ausgibt. Oder ich möchte, dass der erste Beitrag ein Miniaturbild anzeigt (und nicht der Rest).

Hier ist ein Pseudocode, den ich vermitteln möchte:

        if (have_posts()):
            while (have_posts()):
                the_post();
                the_excerpt();
                if(is_most_recent()):
                    // do this
                endif;
            endwhile;
        endif;
1
Avisra

Zusätzlich zu @Milo Answer (dies vermeidet eine sinnlose Abfrage, da wir bereits alle benötigten Informationen aus der aktuellen wp_query erhalten haben):

if ( have_posts() ) : 
    while ( have_posts() ) : the_post();
        $headline_html_tag = $GLOBALS['wp_query']->current_post === (int) 0 && $GLOBALS['paged'] === (int) 1 ? '1' : '2';
        the_title( '<h'.$headline_html_tag.'><a href="'.get_permalink().'" title="'.the_title_attribute( array( 'before' => 'Permalink to: ', 'after' => '', 'echo' => false ) ).'">', '</a>'.'</h'.$headline_html_tag.'>', false );
    endwhile; 
endif;
2
kaiser

Versuchen Sie es mit get_posts()? Codex ref

z.B.:

function is_latest_post() {
    $latestpost = get_posts ( array(
        'numberposts' => 1
    ) );
    $latestpost = $latestpost[0];
    $is_latest = ( $latestpost->ID == get_the_ID() ? true : false );
    return $is_latest;
}

(Muss innerhalb der Schleife verwendet werden.)

2
Chip Bennett

Noch einfacher ist es zu überprüfen, ob es einen nächsten Beitrag gibt. Wenn nicht, können wir davon ausgehen, dass dies die neueste ist ...

$nextPost = get_next_post();
if (empty($nextPost)) {

//This is the latest post

} else { 

//This is not the latest post

}
0
Jonny Green