WordPress content ordering

Put your posts, terms and users in the order you choose

Custom Sort Order lets you drag posts, taxonomy terms and users into your own sequence, on the admin list or, if you choose, on the live site too.

  • A dedicated drag-and-drop screen for each enabled list.
  • Works for post types, taxonomy terms and users independently.
  • Optionally applies the same order to front-end queries.
  • New items join automatically at the top or bottom, no rebuilding.
Drag & Drop OrderingCustom Sort Order
Getting Started GuidePublished
Pricing OverviewDraft
Team PagePrivate
Autumn LaunchScheduled
Order savedApplied instantly to this list.
Active
Quick answer

What does Custom Sort Order do?

When the custom_sort_order module is active, TOWP_Custom_Sort_Order adds a "Sort Order" screen, reached from a submenu link and a badge on the list itself, for each enabled post type, taxonomy or the Users list. Dragging items there saves an ordered array of IDs through a nonce-protected AJAX action; that order then gets injected into the admin list-table's query via posts_clauses, terms_clauses or pre_user_query, using SQL's FIELD() function, whenever the visitor hasn't already clicked a column to sort by something else. If a post type is also explicitly enabled for the front end, the same saved order applies to front-end queries too, so visitors see items in the same sequence an editor arranged.

The "not alphabetical, not chronological" problem

Some lists need an order nobody's format gets right

Neither of WordPress's two natural sort orders can express a deliberate editorial or organizational priority.

The natural sort orders don't fit every list

Alphabetical order ignores importance, and chronological order ignores everything except when something was published; neither reflects a deliberate editorial or organizational priority.

WordPress has no built-in drag-and-drop for this

Reordering posts, terms or users by hand normally means editing dates or titles just to force a particular sequence, a workaround that fights the data instead of expressing an actual order.

A dedicated WordPress solution

Drag it into place, once

The module gives each enabled list its own sortable screen, then keeps that order in place for both the admin and, optionally, the front end.

A dedicated drag-and-drop screen

Each enabled post type, taxonomy or the Users list gets its own Sort Order screen, reached from a submenu link or a badge on the list.

Order that shows where it matters

The saved order applies to the admin list-table by default, and can extend to the front end for the post types you choose.

New items don't reset the work

A newly published post, a new term or a new user can join automatically at the top or the bottom of the saved order.

Verified feature set

Real ordering, not a display trick

Every capability below is present in the supplied PHP class, its AJAX handlers and settings registration.

Interface

A dedicated Sort Order screen per list

Reached from a submenu link under each enabled type and a badge shown directly on the list itself when a custom order is active.

Submenu linkList badge
Query integration

A genuine SQL sort, not a display trick

The saved order gets injected as a FIELD() clause into the actual list-table query, so pagination and filtering still work correctly against it.

FIELD()posts_clauses
Front-end option

Apply the same order to visitors

A post type explicitly enabled for the front end uses the identical saved order on public-facing queries, main loop and custom ones alike, excluding single views.

Front-end queriesPer post type
Auto-sync

New items placed automatically

A newly published post, created term or registered user gets appended to the top or bottom of the existing order, configurable per site.

Top or bottomNo manual rebuild
Respects explicit sorting

Steps aside when a column is clicked

If a visitor to the admin list clicks a column to sort by title, date or anything else, the custom order yields to that explicit choice.

orderby detectionNo conflict
Practical use cases

Where a custom order helps most

The module supports the lists where alphabetical or chronological order genuinely gets in the way.

Featured or priority content

Arrange posts or pages by actual importance rather than publish date, keeping the most relevant content easy to find.

A deliberate taxonomy sequence

Order categories or custom taxonomy terms the way they should logically read, not alphabetically.

An intentional team or staff order

Arrange a Users list by role, seniority or any other priority that alphabetical order can't express.

Operational benefits

An order that expresses actual intent

The module combines direct manipulation, front-end reach and auto-syncing new items.

Direct manipulation, not a workaroundDragging an item into place is a direct expression of intent, instead of editing a date or title just to force a sequence.
The same order on the front end, if wantedVisitors can see content in the exact sequence an editor arranged, not just administrators.
Stays current without reworkAuto-syncing new items into the order means the arrangement doesn't need to be redone every time something new gets published.
Works the same way across content typesThe same drag-and-drop interface and logic apply whether it's posts, terms, or users.
Performance behaviour

One preload, a native SQL sort

The verified implementation minimizes database round-trips and sorts inside the query itself.

One query, not one per type

Every saved order gets preloaded in a single database query at construction time, instead of a separate lookup per post type or taxonomy.

Only enabled types are affected

The order-applying filters only act on post types, taxonomies and lists explicitly enabled in settings.

A native SQL sort

FIELD() ordering runs inside the database query itself, not as a separate PHP sort applied after the fact.

Security implementation

Capability-checked, opt-in for the front end

The code restricts saving to authorized users and keeps front-end application explicit.

01

Administrator-level capability required

Both the Sort Order screen and its AJAX actions require the edit_posts capability.

02

Nonce-verified save and reset

Saving or resetting an order both call check_ajax_referer() before touching anything.

03

IDs are sanitized before saving

Every submitted ID passes through absint(), and non-numeric or invalid entries get filtered out before the order is stored.

04

Explicit opt-in for front-end application

A post type only affects front-end queries if it's specifically enabled for that; nothing changes on the public site by default.

Verified compatibility

Built around native WordPress query hooks

The supplied code integrates through APIs present in WordPress core. No compatibility claim beyond the verified implementation is assumed.

Admin queries

posts_clauses, terms_clauses, pre_user_query

The saved order integrates through the same query-modification hooks WordPress itself and other plugins use for list-table sorting.

posts_clausespre_user_query
Front end

Any query, main or custom

When enabled for a post type, the order applies to any front-end query for that type, excluding single-post views specifically to avoid interfering with them.

WP_QueryExcludes singular views
Admin Menu Organizer

Menu-open state fixed independently

The sidebar highlight for the Sort Order screen is corrected using the DOM element's ID rather than its menu slug, so it still works correctly even if Admin Menu Organizer has renamed the parent menu.

DOM-based fixMenu Organizer compatible
Solution comparison

TheOneWP versus common alternatives

Compare the verified Custom Sort Order implementation with the usual workaround of editing dates or titles.

CapabilityTheOneWP Custom Sort OrderOther common solutions
Setting a custom order Drag and drop on a dedicated screen per listUsually means editing dates or titles to force a sequence
Applying to the front end An explicit, per-post-type opt-inRarely available without custom query code
New item handling Auto-added to the top or bottomManually re-inserted into the order every time
Query integration A real SQL FIELD() sort, pagination-safeA display-only reorder that breaks under pagination
Administration One screen per list, reached from its own badgeRequires a separate plugin per content type
Recommended workflow

Set a custom order in four steps

Decide on front-end application deliberately, per post type, once the order looks right.

01

Enable Custom Sort Order

Activate the module from the TheOneWP Content settings tab and choose which post types, taxonomies and the Users list to enable.

02

Open the Sort Order screen

Use the submenu link or the list badge to open the drag-and-drop screen for that list.

03

Drag items into place

Reorder the list by dragging, then save.

04

Decide on front-end application, if relevant

Enable front-end application for any post type where visitors should see the same order.

Best practices

Order deliberately, not everywhere

A custom order works best where the default sorting genuinely fails a list, not as a blanket habit.

01

Enable only the lists that need it

A custom order is most useful where natural sorting genuinely doesn't fit; not every list needs one.

02

Choose new-item placement deliberately

Decide whether new posts, terms or users should default to the top or the bottom, based on how the list is actually used.

03

Reserve front-end application for lists visitors should see reordered

Enabling it broadly when only the admin needs the custom order adds an unnecessary front-end query change.

04

Revisit the order after a content push

A batch of newly published content lands wherever the auto-sync setting places it; review the order afterward if it needs fine-tuning.

Common mistakes

Avoid assumptions that cause confusion

The module has clear rules about priority and scope that are easy to misread.

Clicking a column and expecting the custom order to stick

An explicit column sort in the admin list takes priority over the saved custom order for that view.

Forgetting front-end application is opt-in

A custom order set in the admin doesn't reach the front end unless that specific post type is separately enabled for it.

Assuming the order applies to single post views

Front-end ordering is deliberately skipped on single-post views, since there's no list to reorder there.

Frequently asked questions

Custom Sort Order FAQ

These answers come directly from the verified class, its AJAX handlers and settings registration.

What does Custom Sort Order do?

It lets an administrator drag posts, taxonomy terms or users into a custom order on a dedicated screen, applied to the admin list and, optionally, to the front end.

Does the custom order affect the front end of the site?

Only for post types explicitly enabled for that; by default, the custom order only affects the admin list-table.

What happens if I sort a list by clicking a column?

The explicit column sort takes priority for that view; the custom order resumes once no explicit sort is active.

What happens to a newly published post or new user?

It can be automatically added to the top or the bottom of the saved order, depending on how that's configured.

Can I have a different order for posts, categories and users?

Yes. Each enabled post type, taxonomy and the Users list has its own independent saved order.

Where do I find the Sort Order screen?

From a submenu link under the relevant post type, taxonomy or Users menu, or from a badge shown on the list itself when a custom order is active.

Does reordering break pagination?

No. The order is applied as a real SQL sort using FIELD(), so pagination and filtering continue to work correctly against it.

Who can change the sort order?

Anyone with the edit_posts capability, since that's what both the Sort Order screen and its save action require.

Does this module work well with Admin Menu Organizer?

Yes. The Sort Order screen's sidebar highlighting is corrected independently of any menu renaming Admin Menu Organizer applies.

Is the saved order visible anywhere besides the admin list?

Only if explicitly enabled for the front end for that specific post type; otherwise it stays an admin-only arrangement.

Stop fighting alphabetical and chronological order.Drag content into the order you actually want.

Use Custom Sort Order to arrange posts, terms and users exactly how they should read, on the admin list or the live site.