Как удалить или отменить регистрацию всех сценариев jquery в админ-панели WordPress

Я работаю над плагином и в плагине я использую wordpress color picker

color_picker.js:

jQuery(document).ready(function($){
jQuery('.cp-field').wpColorPicker();
});

и в файле index.php:

add_action('admin_init', 'enqueue_color_picker');
function enqueue_color_picker($hook_suffix) {
// first check that $hook_suffix is appropriate for your admin page
wp_enqueue_style('wp-color-picker');
wp_enqueue_script('cp-script-handle', plugin url.'js/color_picker.js', array( 'wp-color-picker' ), false, true);
}

после этого я обновляю свою страницу администратора и просматриваю исходные тексты. Все скрипты jquery и jquery-ui загружаются до окончания тега body, например:

<script type='text/javascript' src='http://site_url/wp-admin/load-scripts.php?c=1&amp;load%5B%5D=hoverIntent,common,admin-bar,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-draggable,jquery-ui-slider,jquery-touch-p&amp;load%5B%5D=unch,iris,wp-color-picker,jquery-ui-sortable,svg-painter,heartbeat,wp-auth-check&amp;ver=4.0'></script>
<script type='text/javascript' src='http://site_url/wp-content/plugins/wp_foo/js/color_picker.js?ver=4.0'></script>

<div class="clear"></div></div><!-- wpwrap -->
<script type="text/javascript">if(typeof wpOnload=='function')wpOnload();</script>
</body>

и когда я комментирую функцию выбора цвета, все сценарии идут.

Я хочу выгрузить или удалить из очереди или снять все ненужные скрипты. Я также пытаюсь удалить сценарии из очереди или производного, но ничего не происходит

add_action('admin_init', 'unload_all_jquery');
function unload_all_jquery() {
//wp_enqueue_script("jquery");
$jquery_ui = array(
"jquery-ui-widget",
"jquery-ui-mouse",
"jquery-ui-accordion",
"jquery-ui-autocomplete",
"jquery-ui-slider",
"jquery-ui-tabs",
"jquery-ui-draggable",
"jquery-ui-droppable",
"jquery-ui-selectable",
"jquery-ui-position",
"jquery-ui-datepicker",
"jquery-ui-resizable",
"jquery-ui-dialog",
"jquery-ui-button");

foreach($jquery_ui as $script){
wp_dequeue_script($script);
}
}

Любые предложения, как я могу это сделать.

0

Решение

Чтобы «отменить регистрацию» скрипта в админе, вам нужно подключиться к 'admin_enqueue_scripts' крюк. Это хук, который также используется для постановки в очередь сценариев администратора (как следует из названия).

Кроме того, вам нужно будет использовать wp_deregister_script () вместо wp_dequeue_script(), Причина этого заключается в том, что сценарий был «зарегистрирован» в очереди, но на самом деле не помещен в очередь. Итак, ваш финальный скрипт будет выглядеть примерно так:

add_action('admin_enqueue_scripts', 'unload_all_jquery');
function unload_all_jquery() {
//wp_enqueue_script("jquery");
$jquery_ui = array(
"jquery-ui-widget",
"jquery-ui-mouse",
"jquery-ui-accordion",
"jquery-ui-autocomplete",
"jquery-ui-slider",
"jquery-ui-tabs",
"jquery-ui-draggable",
"jquery-ui-droppable",
"jquery-ui-selectable",
"jquery-ui-position",
"jquery-ui-datepicker",
"jquery-ui-resizable",
"jquery-ui-dialog",
"jquery-ui-button");

foreach($jquery_ui as $script){
wp_deregister_script($script);
}
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]