Simple Page Ordering is a WordPress plug-in that allows you to order your pages (and other hierarchical post types) with simple drag and drop. Also adds a drop down to change items shown per page.

Download version 0.8.2 »


The following video is from an earlier build (0.7) that has been since refined.

Simply drag and drop the page into your desired position! It’s that simple. No new admin menus pages, no dedicated clunky user interfaces. Just drag and drop on the page list screen.

To facilitate the menu order management on sites with many pages, the plug-in also adds a new drop down filter allowing you to customize the paging (pages per page) on the page admin screen. Your last choice will even be saved whenever you return (on a user to user basis and  post type by post type basis)!

The plug-in is “capabilities smart” – only users with the ability to edit others’ pages (i.e. editors and administrators) will be able to reorder pages.

Integrated help is included! Just click the “help” tab toward the top right of the screen; the help is below the standard help for the screen.

Note that this plug-in only allows drag and drop resort within the same branch in the page tree / hierarchy for a given page. You can instantly change the hierarchy by using the Quick Edit feature built into WordPress and changing the “Parent” option. This may be addressed in the future, but the intention is to avoid confusion about “where” you’re trying to put the page. For example, if you move a page after another page’s last child, are you trying to make it a child of the other page, or position it after the other page? Ideas are welcome.

This plug-in is being released as a “beta” in the Google sense. There are no known issues, but it requires much more comprehensive testing with custom post types and environments with large numbers of pages before we can label it “1.0″. You must have JavaScript enabled for this plug-in to work.


  1. Install easily with the WordPress plugin control panel or manually download the plugin and upload the extracted
    folder to the `/wp-content/plugins/` directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Start dragging and dropping by going to the “Page” admin menu (or custom post type equivalent)!


As always, feedback and suggestions are welcome!

6 Responses to “Simple Page Ordering (WordPress plug-in)”

  1. Soccer Guy says:

    Doesn’t work, at least not for my site. I have WP 3.0. upon activation, i get a bunch of garbled text.

    Warning: Missing argument 2 for spo_edit_posts_per_page() in /home/jcadesi1/public_html/ on line 54

    Warning: Cannot modify header information – headers already sent by (output started at /home/jcadesi1/public_html/ in /home/jcadesi1/public_html/ on line 890

    Warning: Cannot modify header information – headers already sent by (output started at /home/jcadesi1/public_html/ in /home/jcadesi1/public_html/ on line 890

  2. Jon says:

    Great plugin! As a teacher with a WP blog, I have a lot of pages to juggle on a weekly basis (in particular, activating and deactivating pages with spelling words). The page count option helps me to speed up my work and jump directly to the page I want (instead of having to go through the pages 20 at a time), and the reordering feature will allow me to push pages I’m done with to the bottom of the list. Thanks!

  3. Jake Goldman says:

    Soccer Guy – the latter two errors are caused by the existence of the first error (content being spit out before the page loads).

    Do you have WordPress in debug mode? Let me know if shutting it off makes it work. In the meantime, I’ll investigate.

    Does it happen everywhere, or only on the pages screen?

  4. Jake Goldman says:

    Soccer Guy – turns out there was actually a change in 3.0.1 to the filter I’m using that reveals the post type. So you must have 3.0.1 or newer (3.0 not supported).

  5. This plugin isn’t ordering the pages. No errors or anything. The pages just don’t change order. My website is and I’m using Ulf Pettersson’s older Modern theme.

    Any suggestions would be helpful.


  6. Jake Goldman says:

    David – my guess would be AJAX requests timing out on a low end shared host. I did have one user who thought this would reorder pages on the front end, and didn’t realize she was using the 3.0 menus feature for the front end…