Version Description
- Fixed ordering in WordPress 4.0 following core changes to ORDER BY in WP_Query
Download this release
Release Info
| Developer | jakemgold |
| Plugin | |
| Version | 2.2.3 |
| Comparing to | |
| See all releases | |
Code changes from version 2.2.2 to 2.2.3
- readme.txt +6 -3
- simple-page-ordering.php +18 -8
readme.txt
CHANGED
|
@@ -3,8 +3,8 @@ Contributors: jakemgold, 10up, thinkoomph
|
|
| 3 |
Donate link: http://10up.com/plugins/simple-page-ordering-wordpress/
|
| 4 |
Tags: order, re-order, ordering, pages, page, manage, menu_order, hierarchical, ajax, drag-and-drop, admin
|
| 5 |
Requires at least: 3.8
|
| 6 |
-
Tested up to:
|
| 7 |
-
Stable tag: 2.2.
|
| 8 |
|
| 9 |
Order your pages and other hierarchical post types with simple drag and drop right from the standard page list.
|
| 10 |
|
|
@@ -75,7 +75,10 @@ This feature is already built into WordPress natively, but a bit tucked away. If
|
|
| 75 |
1. Processing indicator
|
| 76 |
|
| 77 |
|
| 78 |
-
== Changelog ==
|
|
|
|
|
|
|
|
|
|
| 79 |
|
| 80 |
= 2.2.2 =
|
| 81 |
* Column widths no longer change when dragging a row (partial props griffinjt)
|
| 3 |
Donate link: http://10up.com/plugins/simple-page-ordering-wordpress/
|
| 4 |
Tags: order, re-order, ordering, pages, page, manage, menu_order, hierarchical, ajax, drag-and-drop, admin
|
| 5 |
Requires at least: 3.8
|
| 6 |
+
Tested up to: 4.0
|
| 7 |
+
Stable tag: 2.2.3
|
| 8 |
|
| 9 |
Order your pages and other hierarchical post types with simple drag and drop right from the standard page list.
|
| 10 |
|
| 75 |
1. Processing indicator
|
| 76 |
|
| 77 |
|
| 78 |
+
== Changelog ==
|
| 79 |
+
|
| 80 |
+
= 2.2.3 =
|
| 81 |
+
* Fixed ordering in WordPress 4.0 following core changes to ORDER BY in WP_Query
|
| 82 |
|
| 83 |
= 2.2.2 =
|
| 84 |
* Column widths no longer change when dragging a row (partial props griffinjt)
|
simple-page-ordering.php
CHANGED
|
@@ -3,7 +3,7 @@
|
|
| 3 |
Plugin Name: Simple Page Ordering
|
| 4 |
Plugin URI: http://10up.com/plugins/simple-page-ordering-wordpress/
|
| 5 |
Description: Order your pages and hierarchical post types using drag and drop on the built in page list. For further instructions, open the "Help" tab on the Pages screen.
|
| 6 |
-
Version: 2.2.
|
| 7 |
Author: Jake Goldman, 10up
|
| 8 |
Author URI: http://10up.com
|
| 9 |
License: GPLv2 or later
|
|
@@ -80,7 +80,8 @@ class Simple_Page_Ordering {
|
|
| 80 |
* when we load up our posts query, if we're actually sorting by menu order, initialize sorting scripts
|
| 81 |
*/
|
| 82 |
public static function wp() {
|
| 83 |
-
|
|
|
|
| 84 |
$script_name = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? 'simple-page-ordering.dev.js' : 'simple-page-ordering.js';
|
| 85 |
wp_enqueue_script( 'simple-page-ordering', plugins_url( $script_name, __FILE__ ), array('jquery-ui-sortable'), '2.1', true );
|
| 86 |
wp_enqueue_style( 'simple-page-ordering', plugins_url( 'simple-page-ordering.css', __FILE__ ) );
|
|
@@ -120,6 +121,8 @@ class Simple_Page_Ordering {
|
|
| 120 |
error_reporting( 0 );
|
| 121 |
}
|
| 122 |
|
|
|
|
|
|
|
| 123 |
$previd = empty( $_POST['previd'] ) ? false : (int) $_POST['previd'];
|
| 124 |
$nextid = empty( $_POST['nextid'] ) ? false : (int) $_POST['nextid'];
|
| 125 |
$start = empty( $_POST['start'] ) ? 1 : (int) $_POST['start'];
|
|
@@ -156,20 +159,24 @@ class Simple_Page_Ordering {
|
|
| 156 |
'show_in_admin_all_list' => true,
|
| 157 |
));
|
| 158 |
|
| 159 |
-
$
|
| 160 |
'depth' => 1,
|
| 161 |
'posts_per_page' => $max_sortable_posts,
|
| 162 |
'post_type' => $post->post_type,
|
| 163 |
'post_status' => $post_stati,
|
| 164 |
'post_parent' => $parent_id,
|
| 165 |
-
'orderby' => 'menu_order title',
|
| 166 |
-
'order' => 'ASC',
|
| 167 |
'post__not_in' => $excluded,
|
| 168 |
'update_post_term_cache' => false,
|
| 169 |
'update_post_meta_cache' => false,
|
| 170 |
'suppress_filters' => true,
|
| 171 |
'ignore_sticky_posts' => true,
|
| 172 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 173 |
|
| 174 |
// don't waste overhead of revisions on a menu order change (especially since they can't *all* be rolled back at once)
|
| 175 |
remove_action( 'pre_post_update', 'wp_save_post_revision' );
|
|
@@ -274,8 +281,11 @@ class Simple_Page_Ordering {
|
|
| 274 |
*/
|
| 275 |
public static function sort_by_order_link( $views ) {
|
| 276 |
$class = ( get_query_var('orderby') == 'menu_order title' ) ? 'current' : '';
|
| 277 |
-
$query_string = esc_url( remove_query_arg(array( 'orderby', 'order' )) );
|
| 278 |
-
|
|
|
|
|
|
|
|
|
|
| 279 |
$views['byorder'] = sprintf('<a href="%s" class="%s">%s</a>', $query_string, $class, __("Sort by Order", 'simple-page-ordering'));
|
| 280 |
|
| 281 |
return $views;
|
| 3 |
Plugin Name: Simple Page Ordering
|
| 4 |
Plugin URI: http://10up.com/plugins/simple-page-ordering-wordpress/
|
| 5 |
Description: Order your pages and hierarchical post types using drag and drop on the built in page list. For further instructions, open the "Help" tab on the Pages screen.
|
| 6 |
+
Version: 2.2.3
|
| 7 |
Author: Jake Goldman, 10up
|
| 8 |
Author URI: http://10up.com
|
| 9 |
License: GPLv2 or later
|
| 80 |
* when we load up our posts query, if we're actually sorting by menu order, initialize sorting scripts
|
| 81 |
*/
|
| 82 |
public static function wp() {
|
| 83 |
+
$orderby = get_query_var('orderby');
|
| 84 |
+
if ( ( is_string( $orderby ) && 0 === strpos( $orderby, 'menu_order' ) ) || ( isset( $orderby['menu_order'] ) && $orderby['menu_order'] == 'ASC' ) ) {
|
| 85 |
$script_name = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? 'simple-page-ordering.dev.js' : 'simple-page-ordering.js';
|
| 86 |
wp_enqueue_script( 'simple-page-ordering', plugins_url( $script_name, __FILE__ ), array('jquery-ui-sortable'), '2.1', true );
|
| 87 |
wp_enqueue_style( 'simple-page-ordering', plugins_url( 'simple-page-ordering.css', __FILE__ ) );
|
| 121 |
error_reporting( 0 );
|
| 122 |
}
|
| 123 |
|
| 124 |
+
global $wp_version;
|
| 125 |
+
|
| 126 |
$previd = empty( $_POST['previd'] ) ? false : (int) $_POST['previd'];
|
| 127 |
$nextid = empty( $_POST['nextid'] ) ? false : (int) $_POST['nextid'];
|
| 128 |
$start = empty( $_POST['start'] ) ? 1 : (int) $_POST['start'];
|
| 159 |
'show_in_admin_all_list' => true,
|
| 160 |
));
|
| 161 |
|
| 162 |
+
$siblings_query = array(
|
| 163 |
'depth' => 1,
|
| 164 |
'posts_per_page' => $max_sortable_posts,
|
| 165 |
'post_type' => $post->post_type,
|
| 166 |
'post_status' => $post_stati,
|
| 167 |
'post_parent' => $parent_id,
|
| 168 |
+
'orderby' => array( 'menu_order' => 'ASC', 'title' => 'ASC' ),
|
|
|
|
| 169 |
'post__not_in' => $excluded,
|
| 170 |
'update_post_term_cache' => false,
|
| 171 |
'update_post_meta_cache' => false,
|
| 172 |
'suppress_filters' => true,
|
| 173 |
'ignore_sticky_posts' => true,
|
| 174 |
+
);
|
| 175 |
+
if ( version_compare( $wp_version, '4.0', '<' ) ) {
|
| 176 |
+
$siblings_query['orderby'] = 'menu_order title';
|
| 177 |
+
$siblings_query['order'] = 'ASC';
|
| 178 |
+
}
|
| 179 |
+
$siblings = new WP_Query( $siblings_query ); // fetch all the siblings (relative ordering)
|
| 180 |
|
| 181 |
// don't waste overhead of revisions on a menu order change (especially since they can't *all* be rolled back at once)
|
| 182 |
remove_action( 'pre_post_update', 'wp_save_post_revision' );
|
| 281 |
*/
|
| 282 |
public static function sort_by_order_link( $views ) {
|
| 283 |
$class = ( get_query_var('orderby') == 'menu_order title' ) ? 'current' : '';
|
| 284 |
+
$query_string = esc_url( remove_query_arg( array( 'orderby', 'order' ) ) );
|
| 285 |
+
if ( ! is_post_type_hierarchical( get_post_type() ) ) {
|
| 286 |
+
$query_string = add_query_arg( 'orderby', urlencode( 'menu_order title' ), $query_string );
|
| 287 |
+
$query_string = add_query_arg( 'order', 'asc', $query_string );
|
| 288 |
+
}
|
| 289 |
$views['byorder'] = sprintf('<a href="%s" class="%s">%s</a>', $query_string, $class, __("Sort by Order", 'simple-page-ordering'));
|
| 290 |
|
| 291 |
return $views;
|
