Version Description
- Smarter awareness of "sorted" modes in WordPress 3.1 (can only use when sorted by menu order)
- Smarter awareness of "quick edit" mode (can't drag)
- Generally simplified / better organized code
Download this release
Release Info
| Developer | jakemgold |
| Plugin | |
| Version | 0.9.5 |
| Comparing to | |
| See all releases | |
Code changes from version 0.9.1 to 0.9.5
- readme.txt +8 -3
- spo-ordering.js → simple-page-ordering.js +8 -14
- simple-page-ordering.php +134 -147
readme.txt
CHANGED
|
@@ -1,10 +1,10 @@
|
|
| 1 |
=== Simple Page Ordering ===
|
| 2 |
-
Contributors: jakemgold
|
| 3 |
-
Donate link: http://www.
|
| 4 |
Tags: order, re-order, ordering, pages, page, manage, menu_order, hierarchical, ajax, drag-and-drop, admin
|
| 5 |
Requires at least: 3.0.1
|
| 6 |
Tested up to: 3.1
|
| 7 |
-
Stable tag: 0.9.
|
| 8 |
|
| 9 |
Order your pages and other hierarchical post types with simple drag and drop. Also adds a drop down to change items per page.
|
| 10 |
|
|
@@ -48,6 +48,11 @@ folder to the `/wp-content/plugins/` directory
|
|
| 48 |
|
| 49 |
== Changelog ==
|
| 50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
= 0.9 =
|
| 52 |
* Fix page count display always showing "0" on non-hierarchical post types (Showing 1-X of X)
|
| 53 |
* Fix hidden menu order not updating after sort (causing Quick Edit to reset order when used right after sorting)
|
| 1 |
=== Simple Page Ordering ===
|
| 2 |
+
Contributors: jakemgold, thinkoomph
|
| 3 |
+
Donate link: http://www.get10up.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.0.1
|
| 6 |
Tested up to: 3.1
|
| 7 |
+
Stable tag: 0.9.5
|
| 8 |
|
| 9 |
Order your pages and other hierarchical post types with simple drag and drop. Also adds a drop down to change items per page.
|
| 10 |
|
| 48 |
|
| 49 |
== Changelog ==
|
| 50 |
|
| 51 |
+
= 0.9.5 =
|
| 52 |
+
* Smarter awareness of "sorted" modes in WordPress 3.1 (can only use when sorted by menu order)
|
| 53 |
+
* Smarter awareness of "quick edit" mode (can't drag)
|
| 54 |
+
* Generally simplified / better organized code
|
| 55 |
+
|
| 56 |
= 0.9 =
|
| 57 |
* Fix page count display always showing "0" on non-hierarchical post types (Showing 1-X of X)
|
| 58 |
* Fix hidden menu order not updating after sort (causing Quick Edit to reset order when used right after sorting)
|
spo-ordering.js → simple-page-ordering.js
RENAMED
|
@@ -1,6 +1,9 @@
|
|
| 1 |
-
jQuery('table.widefat
|
| 2 |
|
| 3 |
-
jQuery(
|
|
|
|
|
|
|
|
|
|
| 4 |
cursor: 'move',
|
| 5 |
axis: 'y',
|
| 6 |
containment: 'table.widefat',
|
|
@@ -19,17 +22,6 @@ jQuery("table.widefat tbody").sortable({
|
|
| 19 |
ui.item.children('td,th').css('border-bottom-width','1px');
|
| 20 |
},
|
| 21 |
update: function(event, ui) {
|
| 22 |
-
if ( ui.item.hasClass('inline-editor') ) {
|
| 23 |
-
jQuery("table.widefat tbody").sortable('cancel');
|
| 24 |
-
alert( 'Please close the quick editor before reordering this item.' );
|
| 25 |
-
return;
|
| 26 |
-
}
|
| 27 |
-
if ( jQuery('table.widefat th.sorted').length > 0 ) {
|
| 28 |
-
jQuery("table.widefat tbody").sortable('cancel');
|
| 29 |
-
alert( 'Please return the list to the default, menu order sorting before ordering items.' );
|
| 30 |
-
return;
|
| 31 |
-
}
|
| 32 |
-
|
| 33 |
var postid = ui.item.find('.check-column input').val(); // this post id
|
| 34 |
var postparent = ui.item.find('.post_parent').html(); // post parent
|
| 35 |
|
|
@@ -77,4 +69,6 @@ jQuery("table.widefat tbody").sortable({
|
|
| 77 |
else jQuery(this).removeClass('alternate');
|
| 78 |
});
|
| 79 |
}
|
| 80 |
-
}).disableSelection();
|
|
|
|
|
|
| 1 |
+
if ( jQuery('table.widefat th.sorted').length < 1 ) {
|
| 2 |
|
| 3 |
+
jQuery('table.widefat tbody th, table.widefat tbody td').css('cursor','move');
|
| 4 |
+
|
| 5 |
+
jQuery("table.widefat tbody").sortable({
|
| 6 |
+
items: 'tr:not(.inline-edit-row)',
|
| 7 |
cursor: 'move',
|
| 8 |
axis: 'y',
|
| 9 |
containment: 'table.widefat',
|
| 22 |
ui.item.children('td,th').css('border-bottom-width','1px');
|
| 23 |
},
|
| 24 |
update: function(event, ui) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
var postid = ui.item.find('.check-column input').val(); // this post id
|
| 26 |
var postparent = ui.item.find('.post_parent').html(); // post parent
|
| 27 |
|
| 69 |
else jQuery(this).removeClass('alternate');
|
| 70 |
});
|
| 71 |
}
|
| 72 |
+
}).disableSelection();
|
| 73 |
+
|
| 74 |
+
}
|
simple-page-ordering.php
CHANGED
|
@@ -1,13 +1,13 @@
|
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
Plugin Name: Simple Page Ordering
|
| 4 |
-
Plugin URI: http://www.
|
| 5 |
Description: Order your pages and hierarchical post types using drag and drop on the built in page list. Also adds a filter for items to show per page. For further instructions, open the "Help" tab on the Pages screen.
|
| 6 |
-
Version: 0.9.
|
| 7 |
-
Author: Jake Goldman (
|
| 8 |
-
Author URI: http://www.
|
| 9 |
|
| 10 |
-
Plugin: Copyright
|
| 11 |
|
| 12 |
This program is free software; you can redistribute it and/or modify
|
| 13 |
it under the terms of the GNU General Public License as published by
|
|
@@ -24,162 +24,149 @@
|
|
| 24 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
| 25 |
*/
|
| 26 |
|
| 27 |
-
|
| 28 |
-
* code to add posts per page filter
|
| 29 |
-
*/
|
| 30 |
-
|
| 31 |
-
add_filter( 'edit_posts_per_page', 'spo_edit_posts_per_page', 10, 2 );
|
| 32 |
-
|
| 33 |
-
function spo_edit_posts_per_page( $per_page, $post_type )
|
| 34 |
-
{
|
| 35 |
-
if ( !current_user_can('edit_others_pages') ) // check permission
|
| 36 |
-
return $per_page;
|
| 37 |
-
|
| 38 |
-
$post_type_object = get_post_type_object( $post_type );
|
| 39 |
-
if ( !$post_type_object->hierarchical ) // only hierarchical post types apply
|
| 40 |
-
return $per_page;
|
| 41 |
-
|
| 42 |
-
add_action( 'restrict_manage_posts', 'spo_posts_per_page_filter' ); // posts per page drop down UI
|
| 43 |
-
add_action( 'admin_print_styles', 'spo_admin_styles' ); // special styles (move cursor)
|
| 44 |
-
wp_enqueue_script( 'spo-ordering', plugin_dir_url( __FILE__ ) . '/spo-ordering.js', array('jquery-ui-sortable'), '0.9', true );
|
| 45 |
-
add_filter( 'contextual_help', 'spo_contextual_help' );
|
| 46 |
-
|
| 47 |
-
if ( isset( $_GET['spo'] ) && is_numeric( $_GET['spo'] ) && ( $_GET['spo'] == -1 || ($_GET['spo']%10) == 0 ) ) :
|
| 48 |
-
|
| 49 |
-
global $edit_per_page, $user_ID;
|
| 50 |
-
|
| 51 |
-
$per_page = $_GET['spo'];
|
| 52 |
-
|
| 53 |
-
if ( $per_page == -1 )
|
| 54 |
-
$per_page = 99999;
|
| 55 |
-
|
| 56 |
-
update_user_option( $user_ID, $edit_per_page, $per_page );
|
| 57 |
-
|
| 58 |
-
endif;
|
| 59 |
-
|
| 60 |
-
return $per_page;
|
| 61 |
-
}
|
| 62 |
-
|
| 63 |
-
function spo_posts_per_page_filter()
|
| 64 |
{
|
| 65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 66 |
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
<option<?php selected( $spo, -1 ); ?> value="-1"><?php _e('Show all'); ?></option>
|
| 71 |
-
<?php for( $i=10;$i<=100;$i+=10 ) : ?>
|
| 72 |
-
<option<?php selected( $spo, $i ); ?> value="<?php echo $i; ?>"><?php echo $i; ?> <?php _e('per page'); ?></option>
|
| 73 |
-
<?php endfor; ?>
|
| 74 |
-
</select>
|
| 75 |
-
<?php
|
| 76 |
-
}
|
| 77 |
-
|
| 78 |
-
/**
|
| 79 |
-
* styling and help
|
| 80 |
-
*/
|
| 81 |
-
|
| 82 |
-
function spo_admin_styles() {
|
| 83 |
-
echo '<style type="text/css">.js table.widefat tbody th, .js table.widefat tbody td { cursor: move; }</style>';
|
| 84 |
-
}
|
| 85 |
-
|
| 86 |
-
function spo_contextual_help( $help )
|
| 87 |
-
{
|
| 88 |
-
return $help . '
|
| 89 |
-
<p><strong>'. __( 'Simple Page Ordering' ) . '</strong></p>
|
| 90 |
|
| 91 |
-
|
| 92 |
|
| 93 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 94 |
|
| 95 |
-
|
| 96 |
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
}
|
| 100 |
-
|
| 101 |
-
/**
|
| 102 |
-
* actual ajax request for sorting pages
|
| 103 |
-
*/
|
| 104 |
-
|
| 105 |
-
add_action( 'wp_ajax_simple_page_ordering', 'spo_do_page_ordering' );
|
| 106 |
-
|
| 107 |
-
function spo_do_page_ordering()
|
| 108 |
-
{
|
| 109 |
-
// check permissions again and make sure we have what we need
|
| 110 |
-
if ( !current_user_can('edit_others_pages') || !isset($_POST['id']) || empty($_POST['id']) || ( !isset($_POST['previd']) && !isset($_POST['nextid']) ) )
|
| 111 |
-
die(-1);
|
| 112 |
-
|
| 113 |
-
// real post?
|
| 114 |
-
if ( !$post = get_post( $_POST['id'] ) )
|
| 115 |
-
die(-1);
|
| 116 |
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
wp_update_post(array( 'ID' => $post->ID, 'menu_order' => $menu_order )); // update the actual moved post to 1 after prev
|
| 131 |
-
$new_pos[$post->ID] = $menu_order;
|
| 132 |
-
continue;
|
| 133 |
-
}
|
| 134 |
-
|
| 135 |
-
// nothing left to do - numbers already sufficiently padded!
|
| 136 |
-
if ( isset($menu_order) && $menu_order < $sibling->menu_order )
|
| 137 |
-
break;
|
| 138 |
-
|
| 139 |
-
// need to update this sibling's menu order too
|
| 140 |
-
if ( isset($menu_order) ) {
|
| 141 |
-
$menu_order++;
|
| 142 |
-
wp_update_post(array( 'ID' => $sibling->ID, 'menu_order' => $menu_order )); // update the actual moved post to 1 after prev
|
| 143 |
-
$new_pos[$sibling->ID] = $menu_order;
|
| 144 |
-
}
|
| 145 |
-
|
| 146 |
-
endforeach;
|
| 147 |
-
|
| 148 |
}
|
| 149 |
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 153 |
|
| 154 |
-
|
|
|
|
|
|
|
| 155 |
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 163 |
|
| 164 |
-
|
| 165 |
-
if ( isset($menu_order) && $menu_order > $sibling->menu_order )
|
| 166 |
-
break;
|
| 167 |
|
| 168 |
-
|
| 169 |
-
if ( isset($menu_order) ) {
|
| 170 |
-
$menu_order--;
|
| 171 |
-
wp_update_post(array( 'ID' => $sibling->ID, 'menu_order' => $menu_order )); // update the actual moved post to 1 after prev
|
| 172 |
-
$new_pos[$sibling->ID] = $menu_order;
|
| 173 |
-
}
|
| 174 |
|
| 175 |
-
|
|
|
|
|
|
|
|
|
|
| 176 |
|
|
|
|
| 177 |
}
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
die('children');
|
| 183 |
-
|
| 184 |
-
die( json_encode($new_pos) );
|
| 185 |
-
}
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
Plugin Name: Simple Page Ordering
|
| 4 |
+
Plugin URI: http://www.get10up.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. Also adds a filter for items to show per page. For further instructions, open the "Help" tab on the Pages screen.
|
| 6 |
+
Version: 0.9.5
|
| 7 |
+
Author: Jake Goldman (10up)
|
| 8 |
+
Author URI: http://www.get10up.com
|
| 9 |
|
| 10 |
+
Plugin: Copyright 2011 10up (email : jake@get10up.com)
|
| 11 |
|
| 12 |
This program is free software; you can redistribute it and/or modify
|
| 13 |
it under the terms of the GNU General Public License as published by
|
| 24 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
| 25 |
*/
|
| 26 |
|
| 27 |
+
class simple_page_ordering
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
{
|
| 29 |
+
function simple_page_ordering()
|
| 30 |
+
{
|
| 31 |
+
add_filter( 'edit_posts_per_page', array( $this, 'edit_posts_per_page' ), 10, 2 );
|
| 32 |
+
add_action( 'wp_ajax_simple_page_ordering', array( $this, 'ajax_simple_page_ordering' ) );
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
function edit_posts_per_page( $per_page, $post_type )
|
| 36 |
+
{
|
| 37 |
+
if ( !current_user_can('edit_others_pages') ) // check permission
|
| 38 |
+
return $per_page;
|
| 39 |
+
|
| 40 |
+
$post_type_object = get_post_type_object( $post_type );
|
| 41 |
+
if ( !$post_type_object->hierarchical ) // only hierarchical post types apply
|
| 42 |
+
return $per_page;
|
| 43 |
|
| 44 |
+
add_action( 'restrict_manage_posts', array( $this, 'restrict_manage_posts' ) ); // posts per page drop down UI
|
| 45 |
+
wp_enqueue_script( 'simple-page-ordering', plugin_dir_url( __FILE__ ) . '/simple-page-ordering.js', array('jquery-ui-sortable'), '0.9.5', true );
|
| 46 |
+
add_filter( 'contextual_help', array( $this, 'contextual_help' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
|
| 48 |
+
if ( isset( $_GET['spo'] ) && is_numeric( $_GET['spo'] ) && ( $_GET['spo'] == -1 || ($_GET['spo']%10) == 0 ) ) :
|
| 49 |
|
| 50 |
+
global $edit_per_page, $user_ID;
|
| 51 |
+
|
| 52 |
+
$per_page = $_GET['spo'];
|
| 53 |
+
|
| 54 |
+
if ( $per_page == -1 )
|
| 55 |
+
$per_page = 99999;
|
| 56 |
+
|
| 57 |
+
update_user_option( $user_ID, $edit_per_page, $per_page );
|
| 58 |
|
| 59 |
+
endif;
|
| 60 |
|
| 61 |
+
return $per_page;
|
| 62 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
|
| 64 |
+
function restrict_manage_posts()
|
| 65 |
+
{
|
| 66 |
+
global $per_page;
|
| 67 |
+
|
| 68 |
+
$spo = isset($_GET['spo']) ? (int)$_GET['spo'] : $per_page;
|
| 69 |
+
?>
|
| 70 |
+
<select name="spo" style="width: 110px;">
|
| 71 |
+
<option<?php selected( $spo, -1 ); ?> value="-1"><?php _e('Show all'); ?></option>
|
| 72 |
+
<?php for( $i=10;$i<=100;$i+=10 ) : ?>
|
| 73 |
+
<option<?php selected( $spo, $i ); ?> value="<?php echo $i; ?>"><?php echo $i; ?> <?php _e('per page'); ?></option>
|
| 74 |
+
<?php endfor; ?>
|
| 75 |
+
</select>
|
| 76 |
+
<?php
|
| 77 |
+
}
|
| 78 |
|
| 79 |
+
function contextual_help( $help )
|
| 80 |
+
{
|
| 81 |
+
return $help . '
|
| 82 |
+
<p><strong>'. __( 'Simple Page Ordering' ) . '</strong></p>
|
| 83 |
+
<p><a href="http://www.get10up.com/plugins/simple-page-ordering-wordpress/" target="_blank">Simple Page Ordering</a> is a plug-in by <a href="http://www.get10up.com" target="_blank">Jake Goldman (10up)</a>) that allows you to order pages and other hierarchical post types with drag and drop.</p>
|
| 84 |
+
<p>To reposition an item, simply drag and drop the row by "clicking and holding" it anywhere (outside of the links and form controls) and moving it to its new position.</p>
|
| 85 |
+
<p>If you have a large number of pages, it may be helpful to adjust the new "items per page" filter located above the table and before the filter button.</p>
|
| 86 |
+
<p>To keep things relatively simple, the current version only allows you to reposition items within their current tree / hierarchy (next to pages with the same parent). If you want to move an item into or out of a different part of the page tree, use the "quick edit" feature to change the parent.</p>
|
| 87 |
+
';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 88 |
}
|
| 89 |
|
| 90 |
+
function ajax_simple_page_ordering()
|
| 91 |
+
{
|
| 92 |
+
// check permissions again and make sure we have what we need
|
| 93 |
+
if ( !current_user_can('edit_others_pages') || empty($_POST['id']) || ( !isset($_POST['previd']) && !isset($_POST['nextid']) ) )
|
| 94 |
+
die(-1);
|
| 95 |
+
|
| 96 |
+
// real post?
|
| 97 |
+
if ( !$post = get_post( $_POST['id'] ) )
|
| 98 |
+
die(-1);
|
| 99 |
+
|
| 100 |
+
$previd = isset($_POST['previd']) ? $_POST['previd'] : false;
|
| 101 |
+
$nextid = isset($_POST['nextid']) ? $_POST['nextid'] : false;
|
| 102 |
+
$new_pos = array(); // store new positions for ajax
|
| 103 |
+
|
| 104 |
+
if ( $previd )
|
| 105 |
+
{
|
| 106 |
+
$siblings = get_posts(array( 'depth' => 1, 'numberposts' => -1, 'post_type' => $post->post_type, 'post_status' => 'publish,pending,draft,future,private', 'post_parent' => $post->post_parent, 'orderby' => 'menu_order', 'order' => 'ASC', 'exclude' => $post->ID )); // fetch all the siblings (relative ordering)
|
| 107 |
+
|
| 108 |
+
foreach( $siblings as $sibling ) :
|
| 109 |
+
|
| 110 |
+
// start updating menu orders
|
| 111 |
+
if ( $sibling->ID == $previd ) {
|
| 112 |
+
$menu_order = $sibling->menu_order + 1;
|
| 113 |
+
wp_update_post(array( 'ID' => $post->ID, 'menu_order' => $menu_order )); // update the actual moved post to 1 after prev
|
| 114 |
+
$new_pos[$post->ID] = $menu_order;
|
| 115 |
+
continue;
|
| 116 |
+
}
|
| 117 |
+
|
| 118 |
+
// nothing left to do - numbers already sufficiently padded!
|
| 119 |
+
if ( isset($menu_order) && $menu_order < $sibling->menu_order )
|
| 120 |
+
break;
|
| 121 |
+
|
| 122 |
+
// need to update this sibling's menu order too
|
| 123 |
+
if ( isset($menu_order) ) {
|
| 124 |
+
$menu_order++;
|
| 125 |
+
wp_update_post(array( 'ID' => $sibling->ID, 'menu_order' => $menu_order )); // update the actual moved post to 1 after prev
|
| 126 |
+
$new_pos[$sibling->ID] = $menu_order;
|
| 127 |
+
}
|
| 128 |
+
|
| 129 |
+
endforeach;
|
| 130 |
+
|
| 131 |
+
}
|
| 132 |
|
| 133 |
+
if ( !isset($menu_order) && $nextid ) {
|
| 134 |
+
|
| 135 |
+
$siblings = get_posts(array( 'depth' => 1, 'numberposts' => -1, 'post_type' => $post->post_type, 'post_status' => 'publish,pending,draft,future,private', 'post_parent' => $post->post_parent, 'orderby' => 'menu_order', 'order' => 'DESC', 'exclude' => $post->ID )); // fetch all the siblings (relative ordering)
|
| 136 |
|
| 137 |
+
foreach( $siblings as $sibling ) :
|
| 138 |
+
|
| 139 |
+
// start updating menu orders
|
| 140 |
+
if ( $sibling->ID == $nextid ) {
|
| 141 |
+
$menu_order = $sibling->menu_order - 1;
|
| 142 |
+
wp_update_post(array( 'ID' => $post->ID, 'menu_order' => $menu_order )); // update the actual moved post to 1 after prev
|
| 143 |
+
$new_pos[$post->ID] = $menu_order;
|
| 144 |
+
continue;
|
| 145 |
+
}
|
| 146 |
+
|
| 147 |
+
// nothing left to do - numbers already sufficiently padded!
|
| 148 |
+
if ( isset($menu_order) && $menu_order > $sibling->menu_order )
|
| 149 |
+
break;
|
| 150 |
+
|
| 151 |
+
// need to update this sibling's menu order too
|
| 152 |
+
if ( isset($menu_order) ) {
|
| 153 |
+
$menu_order--;
|
| 154 |
+
wp_update_post(array( 'ID' => $sibling->ID, 'menu_order' => $menu_order )); // update the actual moved post to 1 after prev
|
| 155 |
+
$new_pos[$sibling->ID] = $menu_order;
|
| 156 |
+
}
|
| 157 |
|
| 158 |
+
endforeach;
|
|
|
|
|
|
|
| 159 |
|
| 160 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 161 |
|
| 162 |
+
// if the moved post has children, we need to refresh the page
|
| 163 |
+
$children = get_posts(array( 'depth' => 1, 'numberposts' => 1, 'post_type' => $post->post_type, 'post_status' => 'publish,pending,draft,future,private', 'post_parent' => $post->ID )); // fetch all the siblings (relative ordering)
|
| 164 |
+
if ( !empty($children) )
|
| 165 |
+
die('children');
|
| 166 |
|
| 167 |
+
die( json_encode($new_pos) );
|
| 168 |
}
|
| 169 |
+
}
|
| 170 |
+
|
| 171 |
+
if ( is_admin() )
|
| 172 |
+
$simple_page_ordering = new simple_page_ordering;
|
|
|
|
|
|
|
|
|
|
|
|
