Use something like this:
$args = array(
'posts_per_page' => 1,
);
$day_of_week = strtolower( date( 'l' ) );
switch ( $day_of_week ) {
case 'monday' :
$args['cat'] = 1;
break;
case 'tuesday' :
$args['cat'] = 2;
break;
case 'wednesday' :
$args['cat'] = 3;
break;
case 'thursday' :
$args['cat'] = 4;
break;
case 'friday' :
$args['cat'] = 5;
break;
case 'saturday' :
$args['cat'] = 6;
break;
case 'sunday' :
$args['cat'] = 7;
break;
}
$posts = new WP_Query( $args );
if ( $posts->have_posts() ) {
while ( $posts->have_posts() ) {
$posts->the_post();
printf( '<div class="entry-title"><a href="%s"><h2>%s</h2></a></div>', get_permalink(), get_the_title() );
printf( '<div class="%s"><p>%s</p></div>', join( ' ', get_post_class() ), apply_filters( 'the_content', get_the_content() ) );
}
}
wp_reset_postdata();
I used category IDs to select different posts categories. You would have to replace the category IDs with your own category IDs.