如何阻止Wordpress仪表板小部件被拖动?

时间:2010-08-03 18:59:16

标签: wordpress drag-and-drop widget dashboard add-filter

我正在为新手用户设置Wordpress 3.0.1。仪表板小部件放置得恰当,我希望它们保持这种状态。据我所知,没有add_filter或add_action挂钩来阻止拖动,所以另一种方法是制作一个使用jQuery来禁用拖动的插件。我将覆盖哪些处理程序 - click,mouseUp,mouseMove等 - 以及哪些DOM元素?

3 个答案:

答案 0 :(得分:1)

最简单的做法是阻止新订单被保存。这将允许用户更改订单,但不会在下次加载页面时保存更改。

您想要阻止meta-box-order ajax事件:

add_action('check_ajax_referer', 'prevent_meta_box_order');
function prevent_meta_box_order($action)
{
    if ('meta-box-order' == $action /* && $wp_user == 'santa claus' */) {
        die('-1');
    }
}

您可能还希望采取其他措施。打开Firebug并查看当您执行想要阻止的内容时向admin-ajax.php发出的请求。或者使用CSS隐藏屏幕选项选项卡。

答案 1 :(得分:0)

使用WordPress › Role Scoper « WordPress Plugins之类的角色插件来限制用户可以执行的操作。编辑核心文件不是一个好主意,因为您的更改将在升级时被覆盖。

答案 2 :(得分:0)

您可以阻止加载处理小部件/元框拖动和折叠行为的脚本:

add_action( 'admin_init', function() {
    wp_deregister_script( 'postbox' );
} );

由于现在已禁用此功能,因此可以选择将其与一些CSS结合起来以隐藏箭头图标和拖动光标:

.handlediv {
    display: none !important;
}
.hndle, .widget-top {
    cursor: default !important;
}