How to dequeue css files?

时间:2013-10-29 作者:alex

我买了一个主题,但在特定的页面上,我不想使用主题js/css文件。

主题将文件注册为

function add_our_scripts() {
    global $post;

    $options = get_option(\'radium_theme\');

    wp_enqueue_style( \'radium\', RADIUM_CSS_URL . \'/radium.css\', false,\'1.0\',\'all\'); //the framework stylesheet
    wp_enqueue_style( \'main-style\', get_stylesheet_uri(), false,\'1.0\',\'all\'); //the main stylesheet
    wp_enqueue_style(\'sliders\', RADIUM_CSS_URL . \'/sliders.css\',false,\'1.0\',\'all\'); //sliders
    wp_enqueue_style etc
和add\\u操作调用

add_action( \'wp_enqueue_scripts\', \'add_our_scripts\',0);
完整jshttp://jsfiddle.net/wesweatyoushop/FQrKp/

我创建了以下删除函数

    function remove_radium_scripts() {
    echo \'Test check\';
    wp_dequeue_style(\'radium\');
    //wp_dequeue_style( array(\'radiumshortcodes\',\'sliders\',\'radium\') );
    //wp_deregister_style( array(\'radiumshortcodes\',\'sliders\',\'radium\') );
}

add_action( \'test_remove_scripts\', \'remove_radium_scripts\', 999 );
在我添加的特定页面的标题中

do_action(\'test_remove_scripts\');
我能看到测试结果,但镭没有。css仍然存在

我怎样才能解决这个问题

2 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

使用正确的动作钩请注意所使用的动作钩:

add_action( \'wp_enqueue_scripts\', \'add_our_scripts\',0);
以及您定义/使用的动作挂钩:

add_action( \'test_remove_scripts\', \'remove_radium_scripts\', 999 );
您需要执行相同的操作:

add_action( \'wp_enqueue_scripts\', \'remove_radium_scripts\', 999 );
使用正确的优先级请注意priority 正在使用:

add_action( \'wp_enqueue_scripts\', \'add_our_scripts\',0);
以及priority 您正在使用:

add_action( \'wp_enqueue_scripts\', \'remove_radium_scripts\', 999 );
您需要挂接到相同的priority

add_action( \'wp_enqueue_scripts\', \'remove_radium_scripts\', 0 );
如果所有其他方法都失败了,请使用最后一分钟出列如果这些方法不起作用,您可以使用更具攻击性的选项:在wp_print_styles, 具有高优先级:

add_action( \'wp_print_styles\', \'remove_radium_scripts\', 9999 );

SO网友:s_ha_dum

将该样式表出列所需的全部内容是:

function remove_radium_scripts() {
    wp_dequeue_style(\'radium\');
    //wp_dequeue_style( array(\'radiumshortcodes\',\'sliders\',\'radium\') );
    //wp_deregister_style( array(\'radiumshortcodes\',\'sliders\',\'radium\') );
}
add_action( \'wp_enqueue_scripts\', \'remove_radium_scripts\', 999 );
我不知道你在哪里添加了新动作,但几乎可以肯定,这将是太早或太迟了。之前wp_head() 太早了,以后就太迟了。你必须把钩子加在钩子上才能起作用。像这样的(以前wp_head()).

add_action(
  \'wp_head\',
  function() {
    do_action(\'test_remove_scripts\'); 
  },
  1,999
);

结束

相关推荐