Changing the publish date of a post in WordPress should also automatically change the post’s order in the loop. Depending if the post loop is set as Ascending or Descending, the post should show accordingly by its new date. But if it’s not working, try these steps to fix the problem.
1.) Check the code.
Make sure that the arguments for the loop query has the properties “orderby” and “order” included. The Orderby property can be set to “date” so that the loop will use the publish date as the basis for order while the Order property can be set to either “ASC” for ascending or “DESC” for descending.
The sample code below should show a WordPress post loop query that has the arguments that will show posts by descending dates.
<?php
$args = array(
'post_type' => 'post',
'post_status' => array( 'publish', 'private' ),
'orderby' => 'date',
'order' => 'DESC',
'posts_per_page' => 10
);
$the_loop = new WP_Query($args);
?>
2.) Clear all cache.
Some caching plugins need their caches to be purged after every change done. You may look for any installed caching plugins such as WP Super Cache or Nitropack and delete all their caches. You may also try deleting you browser’s cache before refreshing the page to check if it worked.
3.) Check settings of post re-ordering plugins.
You might have also installed a post re-ordering plugin such as Post Types Order. These kinds of plugin override the defaulted settings of loops and may seem that you have a problem with the order.
Below is what the settings of the plugin Post Type Order should be for your changes to work. Uncheck “Admin Sort” and click the Save Settings button.
Check for any similar plugins that can alter the post order and look into its settings.