Cum să afișezi articolele lună de lună?

9 iul. 2011, 04:48:24
Vizualizări: 22.4K
Voturi: 1

Cum ar putea fi folosit WP_Query pentru a afișa articolele lună de lună și să se arate doar ultimul an? Sau ar fi posibil ca o modificare a funcției wp_archive să poată gestiona acest lucru?

1
Comentarii

Vezi și răspunsul meu aici, este o funcție utilă pe care am creat-o: https://wordpress.stackexchange.com/a/276929/10381

Luca Reghellin Luca Reghellin
15 aug. 2017 12:01:21
Toate răspunsurile la întrebare 3
1

WordPress 3.7 a introdus date_query pentru afișarea postărilor lună de lună:

$args = array(
    'date_query' => array(
        array(
            'month' => $month
        )
    )
);
$query = new WP_Query( $args );

Notă: $month se referă la numărul lunii (1-12)

25 oct. 2017 14:10:42
Comentarii

Soluție perfectă!!!!.. Mulțumesc că mi-ai economisit timpul. :)

Raghav Raghav
17 iun. 2020 09:28:38
0

Ei bine, nu este un hack ci o funcție. Poți folosi pur și simplu wp_get_archives

http://codex.wordpress.org/Function_Reference/wp_get_archives

Alternativ, poți utiliza un wp_query cu un format de timp pentru conținutul actual, de exemplu,

//Decembrie
$query = new WP_Query( 'monthnum=12' );

http://codex.wordpress.org/Class_Reference/WP_Query#Time_Parameters

9 iul. 2011 06:32:58
1

Încearcă asta, ar trebui să clarific că codul este bazat pe un fragment pe care l-am văzut.

    <?php

$blogtime = date('Y'); // Obține anul curent
$prev_limit_year = $blogtime - 1; // Anul anterior
$prev_month = ''; // Inițializare lună anterioară
$prev_year = ''; // Inițializare an anterior

$args = array(
         'posts_per_page' => 20, // Numărul de articole pe pagină
         'ignore_sticky_posts' => 1 // Ignoră articolele lipicioase
);

$postsbymonth = new WP_Query($args); // Interogare pentru articole

while($postsbymonth->have_posts()) {

    $postsbymonth->the_post();

    if(get_the_time('F') != $prev_month || get_the_time('Y') != $prev_year && get_the_time('Y') == $prev_limit_year) {

                   echo "<h2>".get_the_time('F, Y')."</h2>\n\n"; // Afișează luna și anul

        }

    ?>

        <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>

                <?php // alte tag-uri de șablon ?>


    <?php

    $prev_month = get_the_time('F'); // Salvează luna curentă
    $prev_year = get_the_time('Y'); // Salvează anul curent

}

        ?>
24 nov. 2011 03:56:06
Comentarii

Poți face să afișeze și lunile care au zero articole?

davebowker davebowker
5 aug. 2012 06:16:36