从 wp_head Wordpress 中删除所有主题 CSS & JS 但不删除 wp 管理工具栏

Remove all theme CSS & JS from wp_head Wordpress but not remove the wp admin toollbar

在模板中,wp_head() 函数添加了一堆样式和脚本。 这会覆盖主题的其他 CSS,并在 return 中产生问题。

我尝试使用函数删除 CSS 和 js。它有效,但也从 WP 管理工具栏中删除了 CSS。

 function clear_styles_and_scripts() {
     global $wp_scripts;
     global $wp_styles;

foreach( $wp_scripts->queue as $handle ) :

    wp_dequeue_script( $handle );
    wp_deregister_script( $handle );

     endforeach;

foreach( $wp_styles ->queue as $handle ) :

    wp_dequeue_style( $handle );
    wp_deregister_style( $handle );

    endforeach;

 }
  add_action( 'wp_enqueue_scripts', 'clear_styles_and_scripts', 100 );

虽然我不建议出列所有脚本和样式,但您可以检查文件句柄以忽略出列该特定文件:

foreach( $wp_styles ->queue as $handle ) :

    // allows admin bar to be added
    if( 'admin-bar' === $handle ) continue;

    wp_dequeue_style( $handle );
    wp_deregister_style( $handle );

endforeach;

这有效。

  function clear_styles_and_scripts() {
  global $wp_scripts;
  global $wp_styles;
  $styles_to_keep = array("wp-admin", "admin-bar", "dashicons", "open-sans");

  foreach( $wp_styles ->queue as $handle ) :
   if ( in_array($handle, $styles_to_keep) ) continue;
    wp_dequeue_style( $handle );
    wp_deregister_style( $handle );

    endforeach;

  }
   add_action( 'wp_enqueue_scripts', 'clear_styles_and_scripts', 100 );