wordpress建站公司 如何出队/注销任何主题样式和脚本

JasperAI 10000字免费额度试用

是否有可能使我的插件从激活的主题中取消/取消注册任何样式和任何脚本。 所以安装什么主题并不重要,该主题的样式和脚本将出队/注销?

只是要非常清楚:

  1. 我不知道将使用什么主题。
  2. 我只需要从主题中而不是从其他插件中取消/注销样式和脚本。

棘手的事情是知道特定的脚本或样式是否被主题排队。

主题和插件都使用相同的钩子和函数,因此它们不会以任何方式明确标记为属于特定主题或插件。 这意味着要知道脚本或样式是否来自主题的唯一方法是检查 URL 以查看脚本/样式的 URL 是否指向主题目录中的某个位置。

你可以做到这一点的一种方法是循环 $wp_scripts->registered$wp_styles->registered,并检查每个脚本和样式的 URL get_theme_root_uri() 它告诉您主题文件夹的 URL。 如果脚本/样式似乎在该文件夹内,您可以将其出列:

function wpse_340767_dequeue_theme_assets() { $wp_scripts = wp_scripts(); $wp_styles = wp_styles(); $themes_uri = get_theme_root_uri(); foreach ( $wp_scripts->registered as $wp_script ) { if ( strpos( $wp_script->src, $themes_uri ) !== false ) { wp_deregister_script( $wp_script->handle ); } } foreach ( $wp_styles->registered as $wp_style ) { if ( strpos( $wp_style->src, $themes_uri ) !== false ) { wp_deregister_style( $wp_style->handle ); } } } add_action( 'wp_enqueue_scripts', 'wpse_340767_dequeue_theme_assets', 999 ); 

这仅在样式表或脚本位于主题内时才有效。 如果主题是从 CDN 排队脚本或样式,那么我不确定是否可以针对这些主题。

可能这会对您有所帮助。 尝试

#For dequeue JavaScripts function remove_unnecessary_scripts() { # pass Name of the enqueued js. # dequeue js wp_dequeue_script( 'toaster-js' ); # deregister js wp_deregister_script( 'toaster-js' ); } add_action( 'wp_print_scripts', 'remove_unnecessary_scripts' ); #For dequeue Styles function remove_unnecessary_styles() { # pass Name of the enqueued stylesheet. # dequeue style wp_dequeue_style( 'custom-style' ); # deregister style wp_deregister_style( 'custom-style' ); } add_action( 'wp_print_styles', 'remove_unnecessary_styles' ); 

对于仅删除主题样式和脚本,您可以尝试以下操作:

高质量外链购买
function remove_all_scripts_from_theme() { global $wp_scripts; # remove all js // $wp_scripts->queue = array(); foreach( $wp_scripts->queue as $handle ) { if (strpos($wp_scripts->registered[$handle]->src, '/themes/') !== false) { # dequeue js wp_dequeue_script( $handle ); # deregister js wp_deregister_script( $handle); } } } add_action('wp_print_scripts', 'remove_all_scripts_from_theme', 100); function remove_all_styles_from_theme() { global $wp_styles; # remove all css // $wp_styles->queue = array(); foreach( $wp_styles->queue as $handle ) { if (strpos($wp_styles->registered[$handle]->src, '/themes/') !== false) { # dequeue js wp_dequeue_style( $handle ); # deregister js wp_deregister_style( $handle); } } } add_action('wp_print_styles', 'remove_all_styles_from_theme', 100); 

让我知道它是否有效。 我已经测试了这段代码。 它就像魅力一样有效:-)

谢谢你!

5分钟生成10篇英文软文article forge软件试用

siteground guangda

原文链接:https://www.wordpresshy.com/390391

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享