Enqueue styles after a plugin

时间:2012-08-01 作者:cfree

有没有办法让我的style.css (和其他样式表)在某个插件将其样式排队后?

具体来说,我想要style.css 覆盖cforms的样式,但当我更改add\\u操作的优先级时,它不会做任何事情。

以下是我所拥有的:

    function rm_theme_styles()  
    {
            wp_register_style( \'rm_styles\', get_template_directory_uri() . \'/style.css\', array(), null, \'all\' );
            wp_register_style( \'jquery.fancybox\', get_template_directory_uri() . \'/js/libs/fancybox/jquery.fancybox-1.3.4.css\', false, null, \'screen\' );

            // enqueing:
            wp_enqueue_style( \'rm_styles\' );
            wp_enqueue_style( \'jquery.fancybox\' );
    }

    add_action(\'wp_enqueue_scripts\', \'rm_theme_styles\',10);
C表格:

    ### some css for positioning the form elements
    function cforms_style() {
        global $wp_query, $cforms_root, $localversion, $cformsSettings;

        ### add content actions and filters
        $page_obj = $wp_query->get_queried_object();

        $exclude  = ($cformsSettings[\'global\'][\'cforms_inexclude\'][\'ex\']==\'1\');
        $onPages  = str_replace(\' \',\'\',stripslashes(htmlspecialchars( $cformsSettings[\'global\'][\'cforms_inexclude\'][\'ids\'] )));
        $onPagesA = explode(\',\', $onPages);

        if( $onPages==\'\' || (in_array($page_obj->ID,$onPagesA) && !$exclude) || (!in_array($page_obj->ID,$onPagesA) && $exclude)){

            if( $cformsSettings[\'global\'][\'cforms_no_css\']<>\'1\' )
                    echo \'<link rel="stylesheet" type="text/css" href="\' . $cforms_root . \'/styling/\' . $cformsSettings[\'global\'][\'cforms_css\'] . \'" />\'."\\n";

                    ### add jQuery script & calendar
                    if( $cformsSettings[\'global\'][\'cforms_datepicker\']==\'1\' ){
                        wp_enqueue_script(\'jquery\',false,false,false,false);
                        wp_enqueue_script(\'jquery-ui-core\',false,false,false,false);
                        wp_enqueue_script(\'jquery-ui-datepicker\',false,false,false,false);
                    }
                    echo \'<script type="text/javascript" src="\' . $cforms_root. \'/js/cforms.js"></script>\'."\\n";

            }
        }
    }

    add_filter(\'wp_head\', \'cforms_style\');

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

注意,cForms正在连接到wp_head, 而你正试图wp_enqueue_scripts. 这个wp_enqueue_scripts 钩子在内部发射wp_head 挂钩(优先0, IIRC)。

因此,您的样式表在wp_head, 优先事项0, cForms样式表正在wp_head, 优先事项10. 由于它的输出时间较晚,所以优先于您的输出。

解决方法是使用相同的wp_head 挂钩,优先级较低(即数字高于10), 用于样式表。

结束