在wp插件中,我在该插件的php文件中看到了以下代码。
public function register_plugin_scripts() {
/*** Styles ***/
$cyclone_css = add_query_arg(array('cyclone_templates_css' => 1), home_url( '/' ));
wp_register_style( 'cyclone-slider-plugin-styles', $cyclone_css );//contains our combined css from ALL templates
wp_enqueue_style( 'cyclone-slider-plugin-styles' );
/*** Scripts ***/
wp_register_script( 'cycle', $this->plugin_url.'js/jquery.cycle.all.min.js', array('jquery') );
wp_enqueue_script( 'cycle' );
}现在,我想改变其中的一些。现在,每个页面都在使用这个插件。这意味着每个页面都会请求组合的CSS2) jquery.cycle.all.min.js。但是,我只在主页上使用这个插件。那么我该如何修复它,使css文件+ js仅为主页加载,而不为其他页面加载。
接下来,我不想组合来自所有模板的css。相反,应该将其精确定位到选定的位置。如何做到这一点?提前谢谢。插件是Cyclone Slider 2。
发布于 2014-10-26 03:05:42
如果您愿意直接编辑插件代码,那么只需在主页上执行wp_enqueue_script()调用即可。
public function register_plugin_scripts() {
/*** Styles ***/
$cyclone_css = add_query_arg(array('cyclone_templates_css' => 1), home_url( '/' ));
wp_register_style( 'cyclone-slider-plugin-styles', $cyclone_css );//contains our combined css from ALL templates
/*** Scripts ***/
wp_register_script( 'cycle', $this->plugin_url.'js/jquery.cycle.all.min.js', array('jquery') );
if (is_front_page()){
wp_enqueue_style( 'cyclone-slider-plugin-styles' );
wp_enqueue_script( 'cycle' );
}
}然而,几乎可以肯定的是,不想编辑插件,因为当插件更新时,您所做的更改将被覆盖。
因此,我将使用wp_dequeue_script和wp_dequeue_style在您不希望它们加载的地方停止脚本加载。
根据Wordpress Function reference,您可以在主题function.php文件或类似文件中添加以下代码:
/**
* Dequeue a queued script.
*
* Hooked to the wp_print_scripts action, with a late priority (100),
* so that it is after the script was enqueued.
*/
function wpcyclone_dequeue_script() {
wp_dequeue_script( 'cycle' );
wp_dequeue_script( 'cyclone-slider-plugin-styles' );
}
if (!is_front_page()){
add_action( 'wp_print_scripts', 'wpcyclone_dequeue_script', 100 );
}https://stackoverflow.com/questions/21761365
复制相似问题