R
by Aurorata V. 4.7 (60 reviews)

ReOrder Posts within Categories

Enables manual ranking of post (and custom post) within taxonomy terms using a drag & drop grid interface.

Tested up to WP 6.3 (Current: 6.9)
v2.14.5 Current Version v2.14.5
Updated 2 years ago Last Update on 08 Dec, 2023
Synced 14 hours ago Last Synced on
Rank
#2,624
-1 this week
Active Installs
8K+
-3%
KW Avg Position
140
-1 better
Downloads
299.8K
+13 today
Support Resolved
0%
No change
Rating
94%
Review 4.7 out of 5
4.7 (60 reviews)

Next Milestone 9K

Total Progress 17.7%
8K+ 9K+
144
Ranks to Climb
-
Growth Needed
8,000,000
Active Installs
Pro

Unlock Exact Install Count

See the precise estimated active installs for this plugin, calculated from real-time ranking data.

  • Exact install estimates within tiers
  • Track install growth over time
  • Milestone progress predictions
Upgrade to Pro
Need 823 more installs to reach 9K+

Rank Changes

2,486 2,554 2,621 2,688 2,756 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
2,609 2,614 2,620 2,625 2,630 06-01-2026 07-01-2026 08-01-2026 09-01-2026 10-01-2026 11-01-2026 12-01-2026 13-01-2026 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
2,609 2,615 2,621 2,626 2,632 22-12-2025 23-12-2025 24-12-2025 25-12-2025 26-12-2025 27-12-2025 28-12-2025 29-12-2025 30-12-2025 31-12-2025 01-01-2026 02-01-2026 03-01-2026 04-01-2026 05-01-2026 06-01-2026 07-01-2026 08-01-2026 09-01-2026 10-01-2026 11-01-2026 12-01-2026 13-01-2026 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
2,609 2,615 2,621 2,627 2,633 23-10-2025 24-10-2025 25-10-2025 26-10-2025 27-10-2025 28-10-2025 29-10-2025 30-10-2025 31-10-2025 01-11-2025 02-11-2025 03-11-2025 04-11-2025 05-11-2025 06-11-2025 07-11-2025 08-11-2025 09-11-2025 10-11-2025 11-11-2025 12-11-2025 13-11-2025 14-11-2025 15-11-2025 16-11-2025 17-11-2025 18-11-2025 19-11-2025 20-11-2025 21-11-2025 22-11-2025 23-11-2025 24-11-2025 25-11-2025 26-11-2025 27-11-2025 28-11-2025 29-11-2025 30-11-2025 01-12-2025 02-12-2025 03-12-2025 04-12-2025 05-12-2025 06-12-2025 07-12-2025 08-12-2025 09-12-2025 10-12-2025 11-12-2025 12-12-2025 13-12-2025 14-12-2025 15-12-2025 16-12-2025 17-12-2025 18-12-2025 19-12-2025 20-12-2025 21-12-2025 22-12-2025 23-12-2025 24-12-2025 25-12-2025 26-12-2025 27-12-2025 28-12-2025 29-12-2025 30-12-2025 31-12-2025 01-01-2026 02-01-2026 03-01-2026 04-01-2026 05-01-2026 06-01-2026 07-01-2026 08-01-2026 09-01-2026 10-01-2026 11-01-2026 12-01-2026 13-01-2026 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
Current #2,624
Change
Best #

Upgrade to Pro

Unlock 30-day and 90-day rank history charts with a Pro subscription.

Upgrade Now

Active Installs Growth

Active Installs 0,000,000+
Growth +0.0%
Peak 0,000,000

Downloads Growth

0 10 20 30 40 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
0 10 20 30 40 06-01-2026 07-01-2026 08-01-2026 09-01-2026 10-01-2026 11-01-2026 12-01-2026 13-01-2026 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
0 10 20 30 40 22-12-2025 23-12-2025 24-12-2025 25-12-2025 26-12-2025 27-12-2025 28-12-2025 29-12-2025 30-12-2025 31-12-2025 01-01-2026 02-01-2026 03-01-2026 04-01-2026 05-01-2026 06-01-2026 07-01-2026 08-01-2026 09-01-2026 10-01-2026 11-01-2026 12-01-2026 13-01-2026 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
0 10 20 30 40 23-10-2025 26-10-2025 29-10-2025 01-11-2025 04-11-2025 07-11-2025 10-11-2025 13-11-2025 16-11-2025 19-11-2025 22-11-2025 25-11-2025 28-11-2025 01-12-2025 04-12-2025 07-12-2025 10-12-2025 13-12-2025 16-12-2025 19-12-2025 22-12-2025 25-12-2025 28-12-2025 31-12-2025 03-01-2026 06-01-2026 09-01-2026 12-01-2026 15-01-2026 18-01-2026 21-01-2026
0 100 21-01-2025 02-02-2025 14-02-2025 26-02-2025 10-03-2025 22-03-2025 03-04-2025 15-04-2025 27-04-2025 09-05-2025 21-05-2025 02-06-2025 14-06-2025 26-06-2025 08-07-2025 20-07-2025 01-08-2025 13-08-2025 25-08-2025 06-09-2025 18-09-2025 30-09-2025 12-10-2025 24-10-2025 05-11-2025 17-11-2025 29-11-2025 11-12-2025 23-12-2025 04-01-2026 16-01-2026 21-01-2026
Downloads
Growth
Peak

Upgrade to Pro

Unlock 30-day, 90-day, and yearly download history charts with a Pro subscription.

Upgrade Now

Reviews & Ratings

4.7
60 reviews
Overall 94%
5
50 (83%)
4
5 (8%)
3
2 (3%)
2
2 (3%)
1
1 (2%)

Tracked Keywords

Showing 1 of 1
Keyword Position Change Type Updated
reorder 140 Tag 14 hours ago

Unlock Keyword Analytics

Track keyword rankings, search positions, and discover new ranking opportunities with a Pro subscription.

  • Full keyword position tracking
  • Historical ranking data
  • Competitor keyword analysis
Upgrade to Pro

Track This Plugin

Get detailed analytics, keyword tracking, and position alerts delivered to your inbox.

Start Tracking Free

Plugin Details

Version
2.14.5
Last Updated
Dec 08, 2023
Requires WP
4.4+
Tested Up To
6.3
PHP Version
5.6 or higher
Author
Aurorata V.

Support & Rating

Rating
★ ★ ★ ★ ★ 4.7
Reviews
60
Support Threads
0
Resolved
0%

Keywords

Upgrade to Pro

Unlock keyword rankings, search positions, and detailed analytics with a Pro subscription.

Upgrade Now

Frequently Asked Questions

Common questions about ReOrder Posts within Categories

You can now flag the custom sql table to be deleted when you disable the plugin from your dashboard with the following filter, add_filter('reorder_post_within_categories_delete_custom_table', '__return__true') note that this filter is fired when you disable the plugin in the dashboard. So make sure it is activated when you set this filter.
Yes, as of v2.0 newly published posts can be ranked first instead of last by default using the following filter, add-filter('reorder_post_within_categories_new_post_first', 'rank_new_posts', 10, 3); function rank_new_posts($is_first, $post, $term_id){ $is_first = true; //you can filter by taxonomy term, or other post parameters. //WP_Post $post object being ranked; //$term_id for which the post is rank is being inserted. return $is_first; } NOTE: the post-type must already have a manual ranking for that category term for this hook to fire. TO ensure this, go to the post ReOrder admin page, select the category term and manually order a couple of post, this is enough to ensure this hook fires. Even if you have the manual ranking radio-toggle to 'No', this hook will still fire.
Yes. On v2+ of this plugin, the sortable cards are now displaying the thumbnail of each posts along with the title. The title text can be changed or added to in case you require additional meta fields to be displayed to help you manually rank your posts. To achieve this, hook the following filter, add_filter ('reorder_posts_within_category_card_text', 'custom_card_text', 10,3 ); function custom_card_text($text, $post,$term_id){ //the $text is set to the title fo the post by default. //$post is the WP_Post object. //$term_id is the taxonomy term being sorted. $text = '<div>'.$text.'</div><div>'.get_post_meta($post->ID, 'custom-field', true).'</div>'; return $text; }
Yes, by default the first time you manually sort your posts, they will be presented in the same order as your post table, namely by post data. There are 3 possible alternative default order you can set, 1.reverse chronological by hooking this filter, add_filter('reorder_posts_within_category_initial_order', 'reverse_order', 10, 3); function reverse_order($reverse, $post_type, $term_id){ //$reverse is a boolean flag. //$post_type for the current posts being ranked. //$term_id of the taxonomy term for which the posts are being ranked. return true; } by alphabetical title order, using the following hook, add_filter('reorder_posts_within_category_initial_orderby', 'chronological_or_alphabetical_order', 10, 3); function chronological_or_alphabetical_order($is_alpha, $post_type, $term_id){ //$is_alpha is a boolean flag set to false by default. //$post_type for the current posts being ranked. //$term_id of the taxonomy term for which the posts are being ranked. return true; } or by reverse alphabetical title order, using both of the above hooks, add_filter('reorder_posts_within_category_initial_order', 'reverse_order', 10, 3); function reverse_order($reverse, $post_type, $term_id){ //$reverse is a boolean flag. //$post_type for the current posts being ranked. //$term_id of the taxonomy term for which the posts are being ranked. return true; } add_filter('reorder_posts_within_category_initial_orderby', 'chronological_or_alphabetical_order', 10, 3); function chronological_or_alphabetical_order($is_alpha, $post_type, $term_id){ //$is_alpha is a boolean flag set to false by default. //$post_type for the current posts being ranked. //$term_id of the taxonomy term for which the posts are being ranked. return true; } as of v2.4 it is now possible to programmatically rank the intial post order, see FAQ 11. 8. When I drag the slider, both sliders move and the number of loaded posts remain fixed.
This to reduce the load on the server. WP limits REST api posts to 100, and this is the base value used. However, the plugin uses a dynamic approach, based on a square grid, hence when your posts grid number of columns equates the number of rows, the slider will automatically adjust the non-dragged slider button to maintain that square. If you wish to display more posts, reduce your window zoom level (ctrl+mouse scroll on firefox/chrome), this will force the number of columns to expand and therefore the js script will allow more posts to be loaded until the rows match the columns. 9. Multi-post taxonomy query not ranked When you have a custom query to display a set of posts on the front-end which combines multiple post-types under a single taxonomy term, then the plugin needs to be told which post-type to use to rank the results. It will fire a filter which you need to hook, apply_filters('reorderpwc_filter_multiple_post_type', 'ranking_post_type',10,2); function ranking_post_type($type, $wp_query){ //use WP_Query object to figure is this is your query, //then return the post-type the to use to rank the results. //if no type is returned the posts will be ranked by date. return $type; } 10. My posts are not being ranked properly on the front-end There are several reasons why this might happen, 1. You are using a custom query get_posts()... If you are displaying your posts using a custom query with the function get_posts() you should be aware that it sets the attribute 'suppress_filters' to true by default (see the codex page). The ranked order is applied using filters on the query, hence you need to explictly set this attribute to false to get your results ranked properly. 2. Your theme or custom query explictly set the 'orderby' query attribute. ** If your **query explicitly sets the 'orderby' attribute, and the override checkbox is checked (see screenshot #5), then the plugin will override your query and rank the results as per your manual order. However, if you uncheck the ovverride setting (ie override is set to false), your query will be ordered as per the orderby directive. However, you can programmatically override the orderby directive with the following hook should you need finer control, add_filter('rpwc2_allow_custom_sort_orderby_override', 'override_orderby_sorting', 10,5); function override_orderby_sorting($override, $wp_query, $taxonomy, $term_id, $type){ //check this is the correct query if($wp_query....){ $override = true; } return $override; } ** 3. You are displaying a taxonomy archive page. ** If your query is a taxonomy archive query for a given term, then WordPress core query does not specify the post_type by default see this bug). This forces the plugin to seek which post_type is associated with this taxonomy. In the event that you are using this taxonomy to classify multiple post types this will lead to the plugin choosing the first type it encounters with available posts for the queried term, and this may give spurious results. A hook is provided for you to correctly filter the post_type and ensure the right results, add_filter('reorderpwc_filter_multiple_post_type', 'filter_my_ranked_post_type', 10, 4); function filter_my_ranked_post_type($type, $post_types, $taxonomy, $wp_query){ /* String $type post type to filter. * String $post_types post types associated with taxonomy. * String $taxonomy being queried. * WP_Query $wp_query query object. */ if('my-custom-tax' == $taxonomy && in_array('my-custom-post',$post_types)) $type = 'my-custom-post'; return $type; } 11. Programmatically ranking initial post order in admin page. If you are migrating from another plugin in which you have painstakingly sorted your posts, or you need have the intial order of posts based on some other criteria (some date or other meta field value), then you can use the following filter to pass the required rank, add_filter('rpwc2_filter_default_ranking', 'custom_intial_order', 10, 4); function custom_intial_order($ranking, $term_id, $taxonomy, $post_type){ //$ranking an array containing a list of post IDs in their default order. //$term_id the current term being reordered. //$taxonomy the taxonomy to which the term belongs. //$post_type the post type being reordered. //check if this is the correct taxonomy/post type you wish to reorder. if('my-custom-post' != $post_type || 'my-category'!=$taxonomy ) return $ranking; //load you default order programmatically... says as $new_order from your DB $filtered_order = array() foreach($new_order as $post_id){ //check the post ID is actually in the ranking. if(in_array($post_id, $new_order)) filtered_order[]=$post_id; } return $filtered_order; } in version 2.6.1, an additional filter is introduced to allow different post status to appear in the initial rank, add_filter('rpwc2_initial_rank_posts_status', 'allow_draft_in_initial_order',10,3); function allow_draft_in_initial_order($status, $post_type, $term_id){ //allow draft post to be ranked initially. By default $status=array('private','publish','future'). if('post'==$post_type){ $status[]='draft'; } return $status; } this will only affect the posts in the admin dashboard reorder page.
Yes! By default all posts moved to draft/pending status are removed from the manual ranking. However, you can hook the following filter and control which draft or pending posts should appear in the manual ranking in the amdin dashboard, add_filter('rpwc2_rank_draft_posts', 'allow_draft_posts_in_ranking', 10, 5); function allow_draft_posts_in_ranking($allow, $new_status, $old_status, $term_id, $post){ //$new_status of the post being saved. //$old_status of the post being saved. //$term_id term for which the post is being ranked. //WP_Post object being saved. if(new_status == 'pending' && $term_id == 5){ //allow pending posts for term id 5 to be ranked. $allow = true; } return $allow; } NOTE: this will only affect the admin dashboard queries. Your draft posts will appear in the admin re-order pages but will not appear in the front-end queries, as only published posts will be retrieved by your queries. If you need to have draft/pending posts in the intial ranking, see FAQ #11.
Yes, there is a filter that allows you to control those too, add_filter('rpwc2_rank_published_posts', 'disable_future_posts_in_ranking', 10, 5); function allow_draft_posts_in_ranking($allow, $new_status, $old_status, $term_id, $post){ //$new_status of the post being saved. //$old_status of the post being saved. //$term_id term for which the post is being ranked. //WP_Post object being saved. if(new_status == 'future' && $term_id == 5){ //do not allow future posts for term id 5 to be ranked. $allow = false; } return $allow; } NOTE: note that this will effect front-end mixed-queries trying to display both future (and/or private) and 'publish'ed posts. as of v2.6.1, the intial sorted posts includes future and provate posts which you can remove using, add_filter('rpwc2_initial_rank_posts_status', 'disable_future_in_initial_order',10,3); function allow_draft_in_initial_order($status, $post_type, $term_id){ //allow draft post to be ranked initially. By default $status=array('private','publish','future'). if('post'==$post_type){ $status=array('publish','private'); } return $status; } NOTE: in all 3 cases, you may use the reset button (see screenshot #3) on the reorder admin page to get the filters to change the order.
In v2.7 a new filter has been added to do just that, allowing you to override the sorting of anually ranked posts, add_filter('rpwc2_manual_sort_override', 'override_manual_sorting', 10,5); function override_manual_sorting($apply_sorting, $wp_query, $taxonomy, $term_id, $type){ //$apply_sorting a boolean to filter, true by default, which will apply the manual sorting. //the current queried $taxonomy with $term_id for post_type $type. // $wp_query is the WP_Querry objet //check some parameters a if(....){ $apply_sorting = false; //do not sort using the manual ranking. } return $apply_sorting; }
use the WordPress core functions, get_the_posts_navigation(), or get_previous_posts_link() and get_next_posts_link().
Unlike the the posts navigation links, the function get_adjacent_post() can be called outside a paged query, and will not return the correct post IDs in your manual sorted posts. as of v2.8, a new function is provided to expose this functionality, however you will need to provide the post ID, the taxonomy term and the post type which identifies this post as being part of a manually sorted list of posts for that term. $adj = get_adjacent_rpwc2_posts($post_id, $term_id, $post_type, $taxonomy); //if the post is part of a manually ranked list, $adj->prev_post; //this is the previous post ID, null is the post is the first in the list. $adj->next_post; //this is the next post ID, null is the post is the last in the list.

Sign In / Register

You need to sign in or register to use this feature.