在插件/主题中将$src从wp_Register_script更改

时间:2014-09-05 作者:stabbie

我有很多使用googleapis外部脚本的插件,这些插件在中国被限制/阻止,这会导致很多问题。在不重写所有插件/主题中的行并中断我的升级路径的情况下,是否有一种方法可以在我的主题功能中做到这一点。php文件,所以我将所有$src URL重写为本地URL?

2 个回复
最合适的回答,由SO网友:Robert hue 整理而成

你当然可以。您只需要找到他们对这些脚本使用的句柄。假设他们正在使用插件脚本句柄。然后取消注册并使用URL再次注册脚本。像这样。

function wcs_scripts_styles() {
    wp_deregister_script( \'plugin-script\' );
    wp_register_script( \'plugin-script\', get_stylesheet_uri(). \'/js/jquery.script.js\', array( \'jquery\' ), NULL, true );
}
add_action( \'wp_enqueue_scripts\', \'wcs_scripts_styles\' );
这会将脚本位置替换为托管在主题js文件夹中的脚本。

SO网友:Rahil Wazir

如果只想考虑覆盖src 对于未复制本地化数组和脚本依赖项的已注册脚本,可以使用wp_scripts()

function my_scripts_styles() {
    $wp_scripts = wp_scripts();

    if ( isset( $wp_scripts->registered[\'script-handler\'] ) ) {
        $wp_scripts->registered[\'script-handler\']->src = plugins_url(
            \'/assets/js/my-script.js\',
            __FILE__
        );
    }
}
add_action( \'wp_enqueue_scripts\', \'my_scripts_styles\', 11 );

结束

相关推荐

为什么使用ADMIN_PRINT_SCRIPTS-{HOOK}将脚本(.js)文件入队是错误的?

根据the Codex, 它只能用于头部的内联脚本标记。我一直在使用add_action(\'admin_print_scripts-{my-hook}\' 用于注射。js和add_action(\'admin_print_styles-{my-hook}\' 对于css没有任何问题。我使用wp\\u register\\u script();wp\\u enqueue\\u script()(以及相应的*_style() ) 让他们排队。“查看源”显示<link rel=\'stylesheet\