如何获取所有排队的样式或脚本,然后立即取消它们的注册?
如何一次注销所有样式?和Java脚本一样吗?
4 个回复
最合适的回答,由SO网友:Hameedullah Khan 整理而成
我希望你知道你在做什么。您可以使用wp_print_styles
和wp_print_scripts
动作挂钩,然后获取全局$wp_styles
和$wp_scripts
对象变量在各自的挂钩中。
“registered”属性列出了在上述两个对象上注册的脚本,“queue”属性列出了排队的脚本。
清空脚本和样式队列的示例代码。
function pm_remove_all_scripts() {
global $wp_scripts;
$wp_scripts->queue = array();
}
add_action(\'wp_print_scripts\', \'pm_remove_all_scripts\', 100);
function pm_remove_all_styles() {
global $wp_styles;
$wp_styles->queue = array();
}
add_action(\'wp_print_styles\', \'pm_remove_all_styles\', 100);
SO网友:Graphics Designer
您还可以通过查找被调用的处理程序,搜索wp_enqueue_style
或wp_enqueue_script
您可以在您的functions.php
add_action( \'wp_print_styles\', \'my_deregister_styles\', 100 );
function my_deregister_styles() {
wp_deregister_style( \'some-css\' );
}
add_action( \'wp_print_scripts\', \'my_deregister_javascript\', 100 );
function my_deregister_javascript() {
wp_deregister_script( \'tutorials-js\' );
wp_deregister_script( \'gsc_dialog\' );
wp_deregister_script( \'gsc_jquery\' );
}
Hameedullah解决方案更好,但是,如果由于某些脚本未加载而遇到问题,请尝试一下上述方法。SO网友:Lenin Zapata
您好,您还可以删除所有这些脚本,wordpress将正常工作。由于Wordpress允许您删除所有脚本,因此无法删除他需要的脚本。音频脚本和其他脚本是额外的脚本,因此这不会在wordpress中造成问题。
/**
* Dequeue the Parent Theme scripts or plugin.
*
* Hooked to the wp_print_scripts action, with a late priority (100),
* so that it is after the script was enqueued.
*/
function my_site_WI_dequeue_script() {
wp_dequeue_script( \'comment-reply\' ); //If you\'re using disqus, etc.
wp_dequeue_script( \'jquery_ui\' ); //jQuery UI, no thanks!
wp_dequeue_script( \'fancybox\' ); //Nah, I use FooBox
wp_dequeue_script( \'wait_for_images\' );
wp_dequeue_script( \'jquery_easing\' );
wp_dequeue_script( \'swipe\' );
wp_dequeue_script( \'waypoints\' );
}
add_action( \'wp_print_scripts\', \'my_site_WI_dequeue_script\', 99 );
SO网友:Alex Standiford
Hameedullah的方法很有用,但是如果你只想在网站的前端(例如:不是你的WordPress仪表板)使用它,你需要添加一个条件来强制它提前退出。
我在使用中提到的支票this question 随着is_admin()
这样做。
function pm_remove_all_scripts(){
if(in_array($GLOBALS[\'pagenow\'], [\'wp-login.php\', \'wp-register.php\']) || is_admin()) return; //Bail early if we\'re
global $wp_scripts;
$wp_scripts->queue = array();
}
add_action(\'wp_print_scripts\', \'pm_remove_all_scripts\', 100);
function pm_remove_all_styles(){
if(in_array($GLOBALS[\'pagenow\'], [\'wp-login.php\', \'wp-register.php\']) || is_admin()) return; //Bail early if we\'re
global $wp_styles;
$wp_styles->queue = array();
}
add_action(\'wp_print_styles\', \'pm_remove_all_styles\', 100);
结束