{"id":90012,"date":"2026-03-24T10:00:00","date_gmt":"2026-03-24T10:00:00","guid":{"rendered":"https:\/\/blaminhor.com\/?p=90012"},"modified":"2026-02-13T16:33:00","modified_gmt":"2026-02-13T15:33:00","slug":"reorder-posts-wordpress-drag-drop","status":"publish","type":"post","link":"https:\/\/blaminhor.com\/p\/m\/news\/reorder-posts-wordpress-drag-drop\/","title":{"rendered":"How to Reorder Posts and Pages in WordPress With Drag and Drop"},"content":{"rendered":"\n<p>By default, WordPress sorts posts by publication date \u2014 newest first. Pages have a \u00ab\u00a0menu order\u00a0\u00bb field, but it&rsquo;s buried in the page editor and requires you to type numbers manually. There&rsquo;s no visual way to say \u00ab\u00a0I want this post before that one.\u00a0\u00bb<\/p>\n\n\n\n<p>If you manage a portfolio, a FAQ section, product listings, or any content where order matters more than chronology, you need a way to <strong>reorder posts in WordPress<\/strong> manually.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How Post Ordering Works in WordPress<\/h2>\n\n\n\n<p>WordPress has a built-in integer field called <code>menu_order<\/code> on every post type. Posts with lower numbers appear first. But the WordPress admin doesn&rsquo;t expose this field in a useful way \u2014 you&rsquo;d have to edit each post individually and type a number. With 50 items, that&rsquo;s 50 separate edits.<\/p>\n\n\n\n<p>For taxonomies (categories, tags), there&rsquo;s no built-in ordering mechanism at all.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Reorder WordPress Posts With Drag and Drop<\/h2>\n\n\n\n<p>Activate the <strong>Post Types Order<\/strong> module in <a href=\"https:\/\/wp.blaminhor.com\">Blaminhor Essentials<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Choose What to Sort<\/h3>\n\n\n\n<p>In the module settings, select which post types to enable sorting for \u2014 posts, pages, and any custom post type registered by your theme or plugins (portfolios, products, testimonials, etc.).<\/p>\n\n\n\n<p>You can also enable sorting for taxonomies: categories, tags, and custom taxonomies.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Drag and Drop<\/h3>\n\n\n\n<p>Open any post list in your admin. The rows are now draggable. <strong>Grab a row and move it<\/strong> to the position you want. The new order is saved immediately.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Automatic Frontend Sorting<\/h3>\n\n\n\n<p>Enable the \u00ab\u00a0Auto sort\u00a0\u00bb option, and your custom order is applied automatically whenever your theme displays posts. No code changes needed \u2014 the module modifies the default query to respect your manual order.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configuration Options<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Capability control<\/strong> \u2014 Choose which user role can reorder items: Administrator, Editor, or Author.<\/li>\n\n\n\n<li><strong>No extra tables<\/strong> \u2014 The module uses WordPress&rsquo;s native <code>menu_order<\/code> for posts and <code>term_meta<\/code> for taxonomies. No custom database tables, which means it works with any theme or plugin that respects standard WordPress queries.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Compatibility With Page Builders<\/h2>\n\n\n\n<p>The module works with all major page builders \u2014 Elementor, Beaver Builder, Divi, and others. If a page builder&rsquo;s widget queries posts, the custom order is applied. If a query explicitly sets its own <code>orderby<\/code>, that takes precedence \u2014 as it should.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Reorder WordPress Content Your Way<\/h2>\n\n\n\n<p>Not every site is a blog sorted by date. For portfolios, FAQs, product catalogs, and curated content, manual ordering is essential. This module makes it as simple as dragging a row.<\/p>\n\n\n\n<p>Included in <a href=\"https:\/\/wordpress.org\/plugins\/blaminhor-essentials\/\">Blaminhor Essentials<\/a>, free to use.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sort posts, pages, and custom post types manually. Uses native menu_order, works with all page builders.<\/p>\n","protected":false},"author":1,"featured_media":90049,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80],"tags":[],"class_list":["post-90012","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-projects"],"_links":{"self":[{"href":"https:\/\/blaminhor.com\/p\/m\/news\/wp-json\/wp\/v2\/posts\/90012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blaminhor.com\/p\/m\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blaminhor.com\/p\/m\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blaminhor.com\/p\/m\/news\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blaminhor.com\/p\/m\/news\/wp-json\/wp\/v2\/comments?post=90012"}],"version-history":[{"count":2,"href":"https:\/\/blaminhor.com\/p\/m\/news\/wp-json\/wp\/v2\/posts\/90012\/revisions"}],"predecessor-version":[{"id":90064,"href":"https:\/\/blaminhor.com\/p\/m\/news\/wp-json\/wp\/v2\/posts\/90012\/revisions\/90064"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blaminhor.com\/p\/m\/news\/wp-json\/wp\/v2\/media\/90049"}],"wp:attachment":[{"href":"https:\/\/blaminhor.com\/p\/m\/news\/wp-json\/wp\/v2\/media?parent=90012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blaminhor.com\/p\/m\/news\/wp-json\/wp\/v2\/categories?post=90012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blaminhor.com\/p\/m\/news\/wp-json\/wp\/v2\/tags?post=90012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}