webentwicklung-frage-antwort-db.com.de

Ordnen Sie Beiträge nach Datum auf der Titelseite

Ich habe Code, um die 5 letzten Beiträge aus jeder Kategorie auf der Startseite anzuzeigen. Im Moment sind sie jedoch Kategorie für Kategorie geordnet. Ist es möglich, sie per Post zu bestellen, aber es gibt immer noch 5 Posts pro Kategorie?

Hier ist mein aktueller Code:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if( $cats = get_categories() ) foreach( $cats as $cat ) :
//go through all site's categories and get up to 5 posts each////

    $cat_query = new WP_Query( array(
        'post__not_in' => get_option( 'sticky_posts' ),
        'category__in' => array($cat->term_id),
        'posts_per_page' => 5,
        'paged' => $paged
        ) );

        if($cat_query->have_posts()) : ?>
<h3 class="cat-title"><?php echo $cat->name; ?></h3>
        <?php while ($cat_query->have_posts()) : $cat_query->the_post();
        get_template_part( 'loop', 'index' );

        endwhile; endif; wp_reset_postdata();
endforeach;
1
risto

Fügen Sie orderby und order zu Ihren Argumenten hinzu:

$cat_query = new WP_Query( array(
    'post__not_in' => get_option( 'sticky_posts' ),
    'category__in' => array($cat->term_id),
    'posts_per_page' => 5,
    'paged' => $paged,
    'orderby' => 'date',
    'order' => 'DESC'
) );


Update

es scheint, dass es immer noch eine Kategorie braucht, 5 Beiträge auflistet und dann zu einer anderen mit 5 Beiträgen usw. geht. Es braucht die letzten Beiträge, aber sie sind eine Kategorie nach einem Hinweis aufgelistet

Versuchen Sie dies stattdessen dann:

$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;

$i = 0;

if ( $cats = get_categories() ) foreach( $cats as $cat ) :
    $cat_query = new WP_Query( 
        array(
            'post__not_in' => get_option( 'sticky_posts' ),
            'category__in' => array ( $cat->term_id ),
            'posts_per_page' => 5,
            'paged' => $paged,
            'orderby' => 'date',
            'order' => 'DESC'
        )
    );

    if ( $cat_query->have_posts() ) : ?>
        <?php while ( $cat_query->have_posts() ) : $cat_query->the_post();
            // arrays of all the posts' IDs and dates
            $the_posts['ID'][$i] = $post->ID;
            $the_posts['date'][$i] = $post->post_date;

            $i++;
        endwhile;
    endif; wp_reset_postdata();
endforeach;

foreach ( $the_posts['date'] as $the_post_date ) {
    $post_dates[] = $the_post_date;
}

// sort all the posts by their dates
array_multisort( $post_dates, SORT_DESC, $the_posts['ID'] );

foreach ( $the_posts['ID'] as $the_post_id ) {
    $post_ids[] = $the_post_id;
}

$query = new WP_Query( array( 'post_type' => 'post', 'post__in' => $post_ids ) );

if ( $query->have_posts() ) : ?>
    <?php while ( $query->have_posts() ) : $query->the_post(); ?>
    <h3 class="cat-title"><?php $cat = get_the_category( get_the_ID() ); echo $cat[0]->name; ?></h3>
    <?php
        get_template_part( 'loop', 'index' );
    endwhile;
endif; wp_reset_postdata();
2
stealthyninja