相当特殊的功能,从未见过任何插件。但这是一个采用拖放插件并进行调整的问题。
这里是一个经过精简和改编的版本My Link Order.
描述和to-do:
将在“用户”、“我的用户订单”中创建一个新的子菜单在插件页面中,执行函数orderUsers()
在浏览器控制台中,您将看到当前顺序为数组。拖放并再次执行,数组将显示新的顺序您必须使用Settings API 或创建AJAX 处理将订单另存为用户元数据的代码子菜单回调中打印的样式和脚本应该放在它们自己的CSS和JS文件中,并相应地排队
<?php
/* Plugin Name: My Users Order */
add_action( \'admin_menu\', \'myuserorder_menu\' );
function myuserorder_menu()
{
$page = add_users_page(
__( \'My Users Order\', \'myuserorder\' ),
__( \'My Users Order\', \'myuserorder\' ),
\'manage_links\',
\'myuserorder\',
\'myuserorder\'
);
add_action( "admin_print_scripts-$page", \'myuserorder_js_libs\' );
}
function myuserorder_js_libs()
{
wp_enqueue_script( \'jquery-ui-sortable\', false, array( \'jquery-ui-core\', \'jquery\' ) );
}
function myuserorder()
{
?>
<div class=\'wrap\'>
<form name="frmMyUserOrder" method="post" action="">
<h2><?php _e(\'My Users Order\', \'myuserorder\') ?></h2>
<ul id="myUserOrderList">
<?php
$results = get_users();
foreach( $results as $user )
echo "<li id=\'{$user->data->ID}\' class=\'lineitem\'>" . $user->data->display_name . "</li>";
?>
</ul>
</form>
</div>
<style type="text/css">
#myUserOrderList {
width: 90%;
border:1px solid #B2B2B2;
margin:10px 10px 10px 0px;
padding:5px 10px 5px 10px;
list-style:none;
background-color:#fff;
-moz-border-radius:3px;
-webkit-border-radius:3px;
}
li.lineitem {
border:1px solid #B2B2B2;
-moz-border-radius:3px;
-webkit-border-radius:3px;
background-color:#F1F1F1;
color:#000;
cursor:move;
font-size:13px;
margin-top:5px;
margin-bottom:5px;
padding: 2px 5px 2px 5px;
height:1.5em;
line-height:1.5em;
}
.sortable-placeholder{
border:1px dashed #B2B2B2;
margin-top:5px;
margin-bottom:5px;
padding: 2px 5px 2px 5px;
height:1.5em;
line-height:1.5em;
}
</style>
<script language="JavaScript" type="text/javascript">
function orderUsers()
{
var newOrder = jQuery("#myUserOrderList").sortable("toArray");
console.log( newOrder );
}
function myuserorderaddloadevent()
{
jQuery("#myUserOrderList").sortable({
placeholder: "sortable-placeholder",
revert: false,
tolerance: "pointer"
});
};
addLoadEvent( myuserorderaddloadevent );
</script>
<?php
}