Poner en cola los estilos después de un complemento

2

¿Hay alguna manera de poner en cola mi style.css (y otras hojas de estilo) DESPUÉS de que un determinado complemento ponga en cola sus estilos?

Específicamente, quiero que mi style.css sobrescriba los estilos de cforms, pero cuando cambio la prioridad de add_action, no hace nada.

Esto es lo que tengo:

    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);

cforms:

    ### 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');
    
pregunta cfree 02.08.2012 - 01:34

1 respuesta

5

Tenga en cuenta que cForms se engancha en wp_head , y está intentando enganchar en wp_enqueue_scripts . El wp_enqueue_scripts hook se dispara dentro del wp_head hook (a la prioridad 0 , IIRC).

Por lo tanto, su hoja de estilo se está encolando en wp_head , prioridad 0 , y la hoja de estilo cForms se está encolando en wp_head , prioridad 10 . Como se publicará más tarde, tendrá prioridad sobre la tuya.

La solución es usar el mismo wp_head hook, con una menor prioridad (es decir, un número más alto que 10 ), para su hoja de estilo.

    
respondido por el Chip Bennett 02.08.2012 - 17:45

Lea otras preguntas en las etiquetas