Getting the posts after a specific login time can be done in 2 steps.
- You need to store the last login time of the user.
- Changing the query to pull the posts which are
modified
after the above login time.
The below function will store the last login time of the user.
// Associating a function to login hook add_action ( 'wp_login', 'set_last_login' ); function set_last_login ( $login ) { $user = get_userdatabylogin ( $login ); // Setting the last login of the user update_usermeta ( $user->ID, 'last_login', date ( 'Y-m-d H:i:s' ) ); }Then you need to collect the last login time of the logged in user and modify the query as below.
<?php // Get current user object $current_user = wp_get_current_user(); // Get the last login time of the user $last_login_time = get_user_meta ( $current_user->ID, 'last_login', true ); // WP_Query with post modified time $the_query = new WP_Query( array( 'date_query' => array( 'column' => 'post_modified', 'after' => $last_login_time, ) ) ); ?> <?php if ( $the_query->have_posts() ) : ?> <?php // Start the Loop ?> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <?php // Show the output ?> <?php endwhile; ?> <?php elseif: ?> <?php echo __( 'No posts available' ); ?> <?php endif; ?> <?php // Restore original Post Data wp_reset_postdata(); ?>The above code will also work for newly added posts since on adding a new post the
post_modified
time is set same aspost_date
time.