在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' );
}
现在,我想改变一些。现在,这个插件用于每一页。每个页面都要求隐含1)组合css 2)jquery.cycle.all.min.js。但是,我只在主页面上使用此插件。那么如何修复它,使css文件+ js只能加载到主页面,没有别的。
接下来,我不想将所有模板中的css组合起来。相反,它应该精确定位到选定的位置。怎么做?。提前致谢。插件是Cyclone Slider 2。
答案 0 :(得分:0)
如果您乐意直接编辑插件代码,那么将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 );
}