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