web-dev-qa-db-fra.com

Supprimer les css en ligne ajoutés par wp_add_inline_css

Je crée un thème pour enfants. J'ai remarqué que mon thème parent ajoute des CSS en ligne dans son functions.php:

wp_add_inline_style( 'persona-style-css', $custom_css );

Étant donné que je ne peux pas modifier certaines valeurs, est-il possible de la retirer de la file d'attente? J'ai essayé de le retirer de la file d'attente en utilisant wp_dequeue_style ('persona-style-css') mais cela n'a pas vraiment aidé.

Merci d'avance.

3
Earlee

Si wp_add_inline_css est déclenché dans une action, vous pouvez utiliser remove_action avec les mêmes paramètres.

Vous pouvez également utiliser l'action wp_enqueue_scripts pour retirer les scripts ou les styles de manière appropriée. Cependant, les styles en ligne ne sont pas inclus dans le $wp_styles global, vous pouvez les supprimer avec l'action print_styles_array, vous devez connaître le nom du descripteur pour le supprimer.

J'espère que cela vous donne quelques astuces pour que cela fonctionne.

2
Benoti

Essayer,

function wp_force_remove_style(){

add_filter( 'print_styles_array', function($styles) {

    #DEBUG: Show all registered styles
    //print_r($styles);
    //die();

    #Set styles to remove
    $styles_to_remove = array('persona-style-css');

    if(is_array($styles) AND count($styles) > 0){

        foreach($styles AS $key => $code){

            if(in_array($code, $styles_to_remove)){

                unset($styles[$key]);

            }

        }

    }

    return $styles;

    }); 

}

add_action('wp_enqueue_scripts', 'wp_force_remove_style', 99);

J'espère que ça aide!

1
Marcio Dias