Wordpress插件优化代码

时间:2014-02-13 17:32:19

标签: wordpress

在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。

1 个答案:

答案 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 );
}