如何解决插件和主题之间的冲突?

时间:2012-12-31 作者:Dave

我正在使用Photospace作为hatch pro wp主题中的图库滑块(you can check here).

幻灯片之间的默认过渡效果是交叉效果(like this example), 但我的滑块中的效果似乎是图像淡入白色,然后白色淡入图像。不知道为什么会这样。

以下是调用其他脚本的代码:

    /* Enqueue scripts (and related stylesheets) */

add_action( \'wp_enqueue_scripts\', \'hatch_pro_scripts\' );
function hatch_pro_scripts() {

if ( !is_admin() ) {

    /* Enqueue Scripts */
    wp_enqueue_script( \'hatch_pro_fitvids\', get_template_directory_uri() . \'/js/fitvids/jquery.fitvids.js\', array( \'jquery\' ), \'1.0\', true );


    /* Enqueue Fancybox */
    if ( hybrid_get_setting( \'hatch_pro_fancybox_enable\' ) ) {
        wp_enqueue_script( \'hatch_pro_fancybox\', get_template_directory_uri() . \'/js/fancybox/jquery.fancybox-1.3.4.pack.js\', array( \'jquery\' ), \'1.0\', true );     
        wp_enqueue_style( \'hatch_pro_fancybox-stylesheet\', get_template_directory_uri() . \'/js/fancybox/jquery.fancybox-1.3.4.css\', false, 1.0, \'screen\' );
        wp_enqueue_script( \'hatch_pro_footer-scripts\', get_template_directory_uri() . \'/js/footer-scripts.js\', array( \'jquery\', \'hatch_pro_fitvids\', \'hatch_pro_fancybox\' ), \'1.0\', true ); 
    } else {
        wp_enqueue_script( \'hatch_pro_footer-scripts-light\', get_template_directory_uri() . \'/js/footer-scripts-light.js\', array( \'jquery\', \'hatch_pro_fitvids\' ), \'1.0\', true );   
    }
}
}

如何解决此问题?

我对CSS很熟悉,但对PHP或其他较重的编码不太熟悉。

1 个回复
最合适的回答,由SO网友:brasofilo 整理而成

如果主题是使用Theme Development Standards, 然后您可以使用该函数wp_deregister_script 从使用滑块的页面中删除冲突脚本。

<小时>[update]
原始解决方案(底部)在特定的插件情况下工作(使用WP Touch)<我认为这是正确的:

add_action( \'wp_enqueue_scripts\', \'wpse_77772_remove_theme_enqueues\', 11 );

function wpse_77772_remove_theme_enqueues()
{
    if( is_front_page() || is_home() ) 
    {
        wp_dequeue_script(\'hatch_pro_fancybox\');
        // etc
    }
}
<小时>

[first version]

例如,在下面的代码片段中,我将删除插件的所有脚本和样式,如果该站点是在移动设备中查看的,请查看您的用例注释。

把它放在主题的末尾functions.php 文件(或子主题)。

add_action( \'wp_head\', \'wpse_77772_remove_plugin_scripts\', 1 );

/**
 * You\'d probably want to use
 * if( is_front_page() || is_home() ) 
 *
 * see: http://wordpress.stackexchange.com/q/30385/12615
 */
function wpse_77772_remove_plugin_scripts()
{
    if( wp_is_mobile() ) {
        remove_action(\'wp_head\', \'add_css\');
        wp_deregister_script(\'jqplot\');
        wp_deregister_script(\'bar\');
        wp_deregister_script(\'cax\');
        wp_deregister_script(\'pol\');
        wp_deregister_script(\'fun\');
        wp_deregister_script(\'pie\');
        wp_deregister_script(\'meg\');
    }
}
这样,您就可以从specific page, 让他们把剩下的装进去。

在主题中搜索wp_register_script 并抓住手柄以用于注销。

这个remove_action 在所有人身上工作add_action 这就是主题。

结束