如何对所有WordPress资产进行出列

时间:2016-10-20 作者:Ken Prince

默认情况下,我想将加载到前端(例如,不是管理面板)的所有样式和脚本出列。

我找到了这个function, 但我不知道如何利用它来实现我的目标。

我在前端看到了大量我不需要的资产,由WP core加载:

例如:

主干网。js

  • jquery UI
  • jquery UI日期选择器
  • 5种不同的mediaelement资产(js+css)
  • 下划线。js嵌入js

  • 3 个回复
    SO网友:Niels van Renselaar

    我不确定你还需要什么,比如这里的例子,记住一些脚本是管理栏之类的东西所需要的,如果你没有登录,就不会排队。

    function wpdocs_dequeue_script() {
       wp_dequeue_script( \'jquery-ui-core\' );
    }
    add_action( \'wp_print_scripts\', \'wpdocs_dequeue_script\', 100 );
    
    这将使jquery ui核心js出列。添加更多行“wp\\u dequeue\\u script”和您想要退出队列的JS也会删除它们。您可以通过转储$wp\\u脚本找到所有句柄。

    <?php global $wp_scripts; var_dump($wp_scripts); ?>
    

    SO网友:Alex Protopopescu

    假设您没有从前端的/wp admin/directory加载任何自定义的额外资产,这将为您带来好处。

    它接受$wp\\u脚本和$wp\\u样式全局变量,遍历已注册的资源并取消注册源目录不包含“/wp admin/”的资源。

    function my_deregister_scripts_and_styles() {
        global $wp_scripts, $wp_styles;
    
        foreach($wp_scripts->registered as $registered)
            if(strpos($registered->src,\'/wp-admin/\')===FALSE)
                wp_deregister_script($registered->handle);
    
        foreach($wp_styles->registered as $registered)
            if(strpos($registered->src,\'/wp-admin/\')===FALSE)
                wp_deregister_style($registered->handle);
    }
    add_action( \'wp_enqueue_scripts\', \'my_deregister_scripts_and_styles\');
    

    SO网友:gtamborero

    这很简单,在函数上使用出列。php文件(在活动主题内)。这样我就可以将4个文件出列:

    // DEQUEUE GUTENBERG STYLES FOR FRONT
    function my_deregister_scripts_and_styles() {
      wp_deregister_script(\'wp-util\'); //deregister script
      wp_deregister_script(\'underscore\'); 
      wp_dequeue_style( \'wp-block-library\'); //deregister style
      wp_dequeue_style( \'wc-block-style\' ); 
      wp_dequeue_style( \'wp-block-library-theme\' );
    }
    add_action( \'wp_enqueue_scripts\', \'my_deregister_scripts_and_styles\', 999);
    
    直接尝试不带扩展名(js/css)的资产名称,如果不起作用,请打开html检查器并尝试使用脚本的id名称。例如:<link rel=\'stylesheet\' id=\'resource-special-name\' href=\'https://www.test.com/resource.css\' type=\'text/css\' />

    如果不起作用,则对名称进行完整搜索(例如:block style.css),您将找到如下调用:

    `wp_enqueue_style( \'block-special-name\', get_template_directory_uri() . \'/css/vendor/block-style.css\',  
    

    相关推荐

    Help with Core Mods

    我的网站突然出现了这个错误,不知道如何修复它。警告:在/nfs/c10/h07/mnt/144394/domains/nationsfg中使用未定义的常量core\\u mods-假定为“core\\u mods”(这将在PHP的未来版本中引发错误)。com/html/wp/wp-content/themes/nationsfg/functions。php在线50