The fix depends on how that page is built. Match the section to the list you actually have, and leave the other ones alone.
Query Loop: turn on Custom Order
This is the block editor path. It only appears when the Query Loop is not inheriting the main query. An inherited query follows the page WordPress already built, and this control stays hidden.
- Select the Query Loop block
- In the block settings, turn off “Inherit query from template” if it is on
- Open the Reorder panel
- Turn on Custom Order
Custom Order sorts by menu order, ascending, which is the same direction as the drag screen. The first post you placed at the top stays first. Turning the switch off sends that block back to date, newest first.
The same panel has Sort by field. That sorts by a public custom field instead of the dragged order, and it turns Custom Order off. Leave it on None when you want the drag.
Ask for menu order in your own query
A theme template or a custom block can pass the order directly. Ascending matches the reorder screen.
$query = array(
'orderby' => 'menu_order',
'order' => 'ASC',
'post_status' => 'publish',
'post_type' => 'post',
'posts_per_page' => 50,
);
$posts = get_posts( $query );WP_Query takes the same arguments. For one archive, a pre_get_posts callback is enough:
add_action( 'pre_get_posts', function ( $query ) {
if ( is_admin() || ! $query->is_main_query() ) {
return;
}
if ( ! $query->is_post_type_archive( 'portfolio' ) ) {
return;
}
$query->set( 'orderby', 'menu_order' );
$query->set( 'order', 'ASC' );
} );Swap portfolio for your post type. is_home() is the check when the list is the main blog.
Advanced: sort this post type everywhere
Settings → Reorder Posts → Advanced can rewrite front-end queries for one post type. Set Sort by to Menu Order and Sort order to ASC. ASC is the drag screen. DESC is the reverse of what you just dragged, and the dropdown starts on DESC, so look at it before you save.
That switch is broad. It changes the blog home, post type archives, and custom queries that name a single post type. It does not change wp-admin, feeds, or a query that asks for several post types at once. It also overwrites a Query Loop that asked for date, if that loop is for the same type. If you only wanted one list, use Custom Order or your own query, and leave Advanced on None.
If the order is still wrong
- A sticky post can still jump to the top of the blog. Unstick it, or set
ignore_sticky_postson the query - A category or other term archive is a different problem. This plugin does not order posts inside a term. See Companion plugins
- A hand-built navigation menu keeps the order you set under Appearance → Menus
- Another plugin may sort later. Queries has the details
