What Is the Order Post Types feature?
Order Post Types is a Classic Monks feature that adds drag-and-drop reordering to the post list table for any public post type. Once enabled for a post type, you can drag rows up or down to change their display order. The order is saved to WordPress’s menu_order field, which themes can then use to display content in a custom order (e.g., a featured posts slider, a hand-curated “latest articles” section, a portfolio sorted by importance rather than date).
Why You Need It
WordPress’s default post order is by date (newest first) for most post types, with no built-in UI for manual reordering:
- For blog posts, date order is fine
- For pages, the default is alphabetical, which is rarely what you want
- For portfolio items, “Featured” or “Importance” order matters more than date
- For staff members, you want a hand-curated order (CEO first, then VP, etc.)
Without Order Post Types, achieving a custom order requires either editing menu_order in the database or using a separate plugin. Classic Monks bakes it in.
How to Use the Order Post Types feature in Classic Monks
Step 1: Navigate to Settings
Click into the Classic Monks plugin settings in your WordPress dashboard.
Step 2: Go to the Content Subtab
Click on the Core menu, then click the Content subtab.
Step 3: Enable Order Post Types
Toggle on Order Post Types. Nested options expand below the toggle.

Step 4: Choose a Mode
Pick from the Order Mode dropdown:
- Enable only on selected: Drag-and-drop is enabled only for the post types you check below
- Enable except on selected: Drag-and-drop is enabled for all post types EXCEPT the ones you check below
- Enable on all post types: Drag-and-drop is enabled for every public post type, no exceptions

For most sites, “Enable only on selected” is the safest default. It gives you explicit control over which post types are reorderable.
Step 5: Select the Post Types
A list of every public post type on your site appears. Check the ones you want to enable reordering for. Uncheck the ones you want to leave in default order (typically posts, since date order is what readers expect).
Step 6: Save Changes
Click Save Changes.
Step 7: Reorder Posts in the List Table
Go to the post type’s list page (e.g., Pages > All Pages for the Pages post type). Each row now has a drag handle (typically a small icon on the left of the row). Click and drag to reorder. The new order saves automatically as you drop.

Configuration Options
| Option | Description | Default |
|---|---|---|
| Order Post Types | Master toggle. Enables drag-and-drop reordering. | Off |
| Order Mode | only-on, except-on, or all-post-types. Controls which post types are reorderable. |
only-on |
| Post Type Checkboxes | Per-post-type control (when Mode is only-on or except-on). |
None checked |
How Themes Use the Custom Order
After reordering posts, your theme or a custom query can display them in the new order by using the orderby=menu_order parameter:
// In a theme template or a custom WP_Query
$featured = new WP_Query( array(
'post_type' => 'portfolio',
'posts_per_page' => 10,
'orderby' => 'menu_order',
'order' => 'ASC',
) );
This returns the posts in the order you set with the drag-and-drop UI. Without orderby=menu_order, WordPress falls back to date order and ignores the drag-and-drop reordering.
Advanced Options (Developers)
// Customize the post types that appear in the orderable list
add_filter( 'cm_orderable_post_types', function( $types ) {
// Force 'page' to be orderable even if the user unchecked it
$types['page'] = 'page';
return $types;
} );
// Show the menu_order value in the list table for debugging
add_action( 'manage_pages_custom_column', function( $column, $post_id ) {
if ( $column === 'title' ) {
echo '<br><small style="color:#999;">menu_order: ' . get_post( $post_id )->menu_order . '</small>';
}
}, 10, 2 );
// Modify the sort order for archive pages
add_action( 'pre_get_posts', function( $query ) {
if ( $query->is_main_query() && $query->is_post_type_archive( 'portfolio' ) ) {
$query->set( 'orderby', 'menu_order' );
$query->set( 'order', 'ASC' );
}
} );
The cm_orderable_post_types filter controls which post types show in the toggle UI. The pre_get_posts example shows how to make the custom order apply to the front-end automatically (without requiring theme changes).