为什么失败:禁用unctions.php中的插件enQueue_script()

时间:2011-11-10 作者:ptim

我尝试使用这里介绍的方法:

Restricting a Plugin to Only Load its CSS and JS on Selected Pages?

在插件“syntax highlighter compress”中,我得到了以下代码:

function wp_shc_head_scripts() {    
    wp_register_script( \'shCore\',       plugins_url(\'syntax-highlighter-compress/scripts/shCore.js\') );
    wp_register_script( \'shAutoloader\', plugins_url(\'syntax-highlighter-compress/scripts/shAutoloader.js\') );
    wp_enqueue_script(\'shCore\');
    wp_enqueue_script(\'shAutoloader\');
}
add_action(\'wp_print_scripts\', \'wp_shc_head_scripts\');
和在函数中。php我有:

function remove_shc() {
    remove_action(\'wp_print_scripts\', \'wp_shc_head_scripts\');
}

if ( is_single( array( 17, 19, 1, 11 ) ) ) {
    add_action(\'wp_print_scripts\', \'remove_shc\');
}
我在每次添加/删除后都尝试了各种priorites,并尝试了各种挂钩(wp\\u head、shutdown、init),但我似乎无法实现这一点!

(在测试过程中,我注释掉了is\\u single()条件,这样插件就永远不会加载,但它总是加载。)

我错过了什么?谢谢Tim

(在将来,我可能会使用get\\u meta值来触发插件激活,理想情况下,插件应该将其设置为使用..但首先要做的是,嗯?)

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

这里有两个问题:

条件标记(is_single()) 不应该这么早就使用functions.php.

function remove_shc() {

    if ( is_single( array( 17, 19, 1, 11 ) ) )
        remove_action( \'wp_print_scripts\', \'wp_shc_head_scripts\' );
}

add_action( \'wp_enqueue_scripts\', \'remove_shc\' );

结束

相关推荐

获取在Functions.php中设置的变量,并在我的Custom Post模板中回显它们

在我的函数中设置了以下函数。php文件,以允许我的自定义帖子类型“Slideshow”工作。add_action( \'the_post\', \'paginate_slide\' ); function paginate_slide( $post ) { global $pages, $multipage, $numpages; if( is_single() && get_post_type() == \'lom_s