Disable dashboard drag&drop

时间:2011-10-20 作者:johann

我需要禁用拖动(&A);删除仪表板小部件的功能。

这应该通过jquery实现,就像它用于dashboard\\u browser\\u nag一样。我不是jquery专家,所以有人能告诉我如何使用jquery查找和修改我的小部件吗?

到目前为止,我知道我必须做一些。可排序(“取消”),但具体如何?

谢谢

3 个回复
SO网友:soulseekah

这将从每个小部件中删除可拖动功能:

jQuery(\'.widget.ui-draggable\').draggable(\'destroy\')
您已经找到了一种很好的方法,可以通过wp_enqueue_script() 或者在Widget页面内联回显它。

要以特定的小部件为目标,您必须按照以下思路进行操作:

jQuery(\'.widget.ui-draggable\').each(function() {
    if (jQuery(this).find(\'h4\').text() == \'Archives\')
        jQuery(this).draggable(\'destroy\');
}
或者选择查找小部件的方式id:

widget-2_calendar-__i__
widget-3_categories-__i__
...
如果你浏览源代码,你很快就会发现这些代码是如何由WordPress内部形成的。剩下的取决于jQuery、选择器,可能还有正则表达式(虽然我不建议在这种情况下使用它们)。

SO网友:kingkool68

未测试,但这至少可以让您开始。将此添加到函数。php或为其制作自己的插件。

function remove_drag_and_drop() {
    wp_dequeue_script( \'jquery-ui-sortable\' );
}
add_action(\'wp_dashboard_setup\', \'remove_drag_and_drop\' );

SO网友:johann

有趣的方法。但不是这样工作的。到目前为止,我的最佳做法是防止添加任何页脚脚本:

 function remove_footer_scripts() { return false; }
 add_filter(\'print_footer_scripts\', \'remove_footer_scripts\');
显然不是一个好的解决方案。但建议wp_dequeue_script 删除单个脚本的功能不起作用-可能“wp\\u dashboard\\u setup”是错误的挂钩?我还尝试挂接到“wp\\u default\\u scripts”并修改$wp_scripts 但没有任何成功。。。

@Ijaas:很好的观点,它也会破坏admin\\u小部件和admin\\u库,但是是否可以根据$current_screen? 应该是,因为它是在set_current_screen() 已调用。

结束

相关推荐

Why use widgets?

我对使用WordPress很陌生,我想知道使用小部件的好处是什么?看here 这听起来像是为那些不是程序员的人准备的,他们想在他们的网站上添加插件。对吗?或者小部件是否在某种程度上使站点更加健壮?