Skip to content
Reorder Posts
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Reorder Posts for WordPress

Reorder Posts is a WordPress plugin that allows a simple and easy way to reorder your post types using WordPress.

This plugin is very powerful and highly configurable if you need some serious reordering.

If you have a feature request, please add an issue.

The stable version of this plugin can be found on


  • Adds "Reorder" sub-menu to all post types by default
  • Hierarchical post type support (i.e., supports nested posts)
  • Allows you to re-nest hierarchical posts
  • Auto-saves order without having to click an update button
  • Dedicated settings panel for determining which post types can be reordered
  • Advanced settings panel for overriding the menu order of custom post type queries

Advanced customization is allowed via hooks. See the Plugin Filters section.


Either install the plugin via the WordPress admin panel, or ...

  1. Upload metronet-reorder-posts to the /wp-content/plugins/ directory.
  2. Activate the plugin through the 'Plugins' menu in WordPress.

For each post type, you will see a new "Reorder" submenu. Simply navigate to "Reorder" to change the order of your post types. Changes are saved immediately, there is no need to click a save or update button.

By default, ordering is enabled for all post types. A settings panel is available for determining which post types to enable ordering for. Advanced options allow you to change the menu order for post types.

Plugin Filters

The plugin filters are demonstrated in the code below.

//Example filter usage for Reorder Posts

/* Override which post types to use Reorder for 
	Takes and returns an array of post types
add_filter( 'metronet_reorder_post_types', 'reorder_override_post_types' );
function reorder_override_post_types( $post_types = array() ) {
	return array( 'post', 'page', 'custom_post_type1', 'custom_post_type2' );	

/* The following filters take and return booleans (true, false)*/
/* Call WordPress functions __return_false or __return_true */
add_filter( 'metronet_reorder_post_allow_admin', '__return_true' ); //Enable or disable the admin panel settings for the plugin
add_filter( 'metronet_reorder_allow_menu_order', '__return_true' ); //Enable or disable the plugin's advanced menu_order modifications for all post types
add_filter( 'metronet_reorder_allow_menu_order_post', '__return_true' ); //Enable or disable the plugin's advanced menu_order modifications for a single post type (format metronet_reorder_allow_menu_order_{post_type}) - If Filter metronet_reorder_allow_menu_order is false, there is no need for this filter

The filters below demonstrate how to add re-ordering to The Events Calendar plugin.

//Add The Events Calendar post types to main Events menu item
//Format metronet_reorder_menu_location_{post_type}
add_filter( 'metronet_reorder_menu_location_tribe_venue', 'unique_menu_event_post_type_locations' );
add_filter( 'metronet_reorder_menu_location_tribe_organizer', 'unique_menu_event_post_type_locations' );
function unique_menu_event_post_type_locations( $menu_location ) {
	return 'edit.php?post_type=tribe_events';	

//Re-label The Events Calendar post types
//Format metronet_reorder_menu_label_{post_type}
add_filter( 'metronet_reorder_menu_label_tribe_events', 'unique_reorder_label_events', 10, 2 );
add_filter( 'metronet_reorder_menu_label_tribe_venue', 'unique_reorder_label_events', 10, 2 );
add_filter( 'metronet_reorder_menu_label_tribe_organizer', 'unique_reorder_label_events', 10, 2 );
function unique_reorder_label_events( $label = '', $post_type = '' ) {
	$post_type = get_post_type_object( $post_type );
	$label = isset( $post_type->label ) ? $post_type->label : '';
	return 'Reorder ' . $label;


This plugin was originally developed for Metronet AS in Norway.

The plugin is now independently developed by Ryan Hellyer, Ronald Huereca and Scott Basgaard

You can’t perform that action at this time.