group posts by month/date ignore years

Need group posts from custom post type by post date.

Example:
Jan (all posts posted in januar for all years 2010,2011 ... 2015)
1 (all posts posted in 1 januar for all years 2010,2011 ... 2015)
POST1
POST2
...
2 (all posts posted in 1 januar for all years 2010,2011 ... 2015)
POST1
POST2
...
Feb (all posts posted in januar for all years 2010,2011 ... 2015)
1 (all posts posted in 1 januar for all years 2010,2011 ... 2015)
POST1
POST2
...

Now I use this code:

table class="table table-striped"
?php
$current_month = '';
$args = array(
'post_type' = 'dayinhistory',
'date_query' = array(
'month' = '1',
),
'order' = 'ASC'
);

query_posts( $args );

if ( have_posts() ) : while( have_posts() ): the_post();

$this_month = get_the_time( 'F' );

if( $this_month != $current_month ){
$current_month = $this_month;
echo 'trtd colspan="4"'; 
echo $current_month; 
echo '/td/tr';
}
?
tr
td style="vertical-align:inherit;"?php the_date('d.m.Y', 'span class="label label-info"', '/span'); ?/td
td style="vertical-align:inherit;"a href="?php the_permalink() ?" rel="bookmark" title="?php the_title(); ?"?php the_title(); ?/a/td
td style="vertical-align:inherit;"span class="label label-default"?php the_time('d M Y'); ?/span/td
/tr
?php endwhile;?
?php endif;?
?php wp_reset_query();?
/table

Or this:

?php
$the_query = new WP_Query( 'post_type=dayinhistorymonthnum=3' );
echo 'table class="table table-striped"';
while ( $the_query-have_posts() ) {
$the_query-the_post(); 

$this_month = get_the_time( 'F' );

if( $this_month != $current_month ){
$current_month = $this_month;
echo 'trtd colspan="4"'; echo $current_month; echo '/td/tr';
}
?
tr
td style="vertical-align:inherit;"?php the_date('d.m.Y', 'span class="label label-info"', '/span'); ?/td
td style="vertical-align:inherit;"a href="?php the_permalink() ?" rel="bookmark" title="?php the_title(); ?"?php the_title(); ?/a/td
td style="vertical-align:inherit;"span class="label label-default"?php the_time('d M Y'); ?/span/td
/tr                
?php }
echo '/table';
wp_reset_postdata();
?

Result

But posts sorts by year, not by day.

Topic date custom-post-types Wordpress

Category Web


You can use the month parameter of WP_Query to get posts by month. For example, to get all posts published on March, ignoring year:

<?php
$the_query = new WP_Query( 'monthnum=3' );
echo '<ul>';
while ( $the_query->have_posts() ) {
    $the_query->the_post();
    echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
wp_reset_postdata();
?>

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.