Как я могу остановить перетаскивание виджетов на панели Wordpress? - PullRequest
0 голосов
/ 03 августа 2010

Я настраиваю Wordpress 3.0.1 для начинающего пользователя.Виджеты Dashboard размещены соответствующим образом, и я бы хотел, чтобы они оставались такими.Насколько я знаю, нет ловушки add_filter или add_action для предотвращения перетаскивания, так что другой подход заключается в создании плагина, который использует jQuery для отключения перетаскивания.Какой обработчик (и) я бы переопределил - щелчок, mouseUp, mouseMove и т. Д. - и какие элементы DOM?

Ответы [ 3 ]

1 голос
/ 13 августа 2010

Может быть, самое простое, что нужно сделать, это предотвратить сохранение нового заказа.Это позволит пользователю изменить порядок, но не сохранит изменения при следующей загрузке страницы.

Вы хотите предотвратить событие 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.

0 голосов
/ 31 июля 2018

Вы можете запретить загрузку скрипта, который обрабатывает поведение перетаскивания и свертывания виджета / метабокса:

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

При желании можно объединить его с некоторым CSS-кодом, чтобы скрыть значок стрелки и перетаскивание курсора, поскольку эта функция теперь отключена

.handlediv {
    display: none !important;
}
.hndle, .widget-top {
    cursor: default !important;
}
0 голосов
/ 04 августа 2010

Используйте плагин Roles, например WordPress ›Role Scoper« Плагины WordPress », чтобы ограничить возможности пользователя.Не рекомендуется редактировать основные файлы, так как ваши изменения будут перезаписаны при обновлении.

...