How to reorder WordPress posts and pages by drag and drop

WordPress sorts by date, not by hand. How to reorder WordPress posts and pages with menu_order — the manual method, its two pains, and the taxonomy gap.

WordPress ships with exactly one sort order: newest first. For a blog that is correct — readers want the latest post, not a list you rearranged by hand. But the moment your content isn’t a blog, that default becomes a problem: a portfolio where the best project belongs first, not the most recently saved, or a team page where the founder shouldn’t be at the bottom because their bio was edited last. If you’ve searched for how to reorder WordPress posts and pages because dragging them into place feels like it should just work, the honest answer is: it almost does, and the gap between “almost” and “actually” is where this guide lives.

A documentation set is the clearest case of all — “Getting Started” has to come before “Advanced Configuration” regardless of when either page was last written, and that ordering only gets more important as the docs grow.

Why date order is wrong for some content and right for other content

Every post and page in WordPress carries a menu_order value in the database. For blog posts, nothing in core or in most themes ever reads it — chronological order is baked in everywhere a post list appears: the blog index, archive pages, RSS feeds, related-posts widgets. That’s the right default for a stream of dated content.

Pages, portfolios, team members, product categories, and documentation aren’t streams. They’re structures, and structures need a position you chose, not a position you happened to save in. That’s exactly the distinction menu_order exists to solve — WordPress just doesn’t finish the job.

Think about how each of these actually gets edited over time. A team page gets touched whenever someone updates their bio, which has nothing to do with where they should sit in the lineup. A documentation set gets touched constantly as pages are corrected and expanded, which would scramble a date-sorted list into something unreadable within a week. Pricing tiers, service areas, portfolio pieces — the common thread is that the order is a deliberate decision, made once, that shouldn’t move just because someone fixed a typo six months later.

How to reorder WordPress pages manually

Open a page in the block editor and look in the sidebar under PageOrder. That field is menu_order, exposed through the “Page Attributes” panel. Type a number, save, and pages with a lower number sort before pages with a higher number wherever a theme or query respects the field.

Two things make this painful in practice. First, it’s raw bookkeeping: there’s no drag-and-drop, just a number box. Reorder five pages and you’re often renumbering all five by hand — insert something between positions 2 and 3 and you either renumber everything below it or start leaving gaps (10, 20, 30) so you have room to slot things in later, which is a workaround, not a feature. Second, that Order field is pages-only by default. It comes from the “Page Attributes” box, which WordPress shows for hierarchical post types — pages, and any custom post type registered as hierarchical. Standard posts don’t get it. If the content you’re trying to reorder is a set of blog posts rather than pages, there’s no manual UI for menu_order at all; you’re into custom fields or code.

If you’re building these structural pages from a shared template — a portfolio project, a location page, a team bio — you’re likely also duplicating them rather than building each from scratch. Our guide to duplicating a page covers what a proper copy needs to carry over, menu order included.

Setting the number doesn’t mean anything shows it

This is the part that trips people up: filling in the Order field changes a number in the database. It does not, by itself, change what visitors see. WordPress’s default template hierarchy queries pages and posts with orderby set to date unless something explicitly says otherwise. A theme’s page list, a custom loop, a WP_Query call, a pre_get_posts filter — every one of them has to set 'orderby' => 'menu_order' (often paired with 'order' => 'ASC') or your carefully numbered pages render in whatever order the query defaults to, which is usually date or ID.

Some themes do this correctly for their built-in page templates. Most custom queries — the ones a page builder or a developer wrote for a specific section of the site — don’t, because nobody thought to ask for it. So the honest troubleshooting step, before assuming reordering is broken, is to check whether the query rendering that list was ever told to look at menu_order in the first place.

The trap: plugins that only reorder wp-admin

A lot of “drag and drop reorder” plugins solve exactly one visible symptom: the list in wp-admin looks wrong, so they give you drag handles to fix the list in wp-admin. That’s real, and it beats typing numbers by hand. But dragging rows in the admin list table only updates menu_order in the database — the same field the manual method already reaches. Whether that new order shows up on the front end still depends entirely on whether the theme or query you’re rendering through has orderby set to menu_order. A plugin that changes the drag-and-drop experience but not the front-end query has solved the typing problem and left the actual problem — the one you searched for — untouched.

This is easy to miss because the admin screen genuinely looks fixed. You drag Team Member C above Team Member A, refresh the list table, and there they are in the new order — success, apparently. Then you check the actual team page on the live site and the two are back in whatever order the theme’s query was already sorting by. Nothing on the admin screen tells you the front end didn’t move. Test any reorder tool by checking the live page or archive after you drag, not just the admin list.

Taxonomy terms have no order at all

Here’s the gap most guides on this topic skip entirely: categories, tags, and custom taxonomy terms have no menu_order equivalent in WordPress core. None. There is no field to set, manual or otherwise. Term queries sort by name (alphabetical) or count (most-used first) — that’s the full list of built-in options. If you want your product categories to show Featured before Sale, or your service areas listed by region instead of the alphabet, core WordPress gives you nothing to work with. Not a clunky number field, not a hidden setting — nothing. Any manual workaround here means a custom meta field on the term plus a custom query modification, which is developer work, not a settings screen.

The shortcut

Reorder is one of the content tools in WP Pro Admin, shipping in version 2.2.0. It replaces the numbered Order field with actual drag and drop — for posts as well as pages, not just the hierarchical post types core’s Page Attributes box covers — and it applies the new order to your front-end queries correctly, so what you see in wp-admin is what visitors see on the site.

It also does the thing core can’t: drag-and-drop ordering for taxonomy terms. Product categories, service areas, any custom taxonomy — set the order once in the term list and every archive, menu, and query that lists those terms uses it.

WP Pro Admin is a free download, GPL, and it will never show you an ad, an upgrade nag, or a promotional notice — a promise enforced by a test in the build, not by a paragraph on a website.