web-dev-qa-db-fra.com

Supprimer un style spécifique de wp_head

Je ne suis pas un développeur WordPress, j'essaie d'aider un ami qui a un site Web WordPress. Voici le problème:

Dans le modèle, la fonction wp_head() ajoute de nombreux styles et scripts.

Je veux supprimer certains d'entre eux dans certaines pages, disons celui-ci:

<link rel='stylesheet' id='yasrcss-css'  href='https://www.example.com/wp-content/plugins/yet-another-stars-rating/css/yasr.css' type='text/css' media='all' />

J'ai donc cherché autour de moi et sur la base de ce que j'avais suggéré sur d'autres questions, j'ai ajouté cette ligne à functions.php (dans le dossier du thème):

add_action( 'init', '_remove_style' );

function _remove_style() {
    wp_dequeue_style( 'yasrcss-css' );
    wp_dequeue_style( 'yasr.css' );
}

Cela n'a pas fonctionné, j'ai également ajouté ceci dans functions.php:

wp_deregister_style('yasrcss-css');

Celui-ci n'a pas fonctionné non plus.

Est-ce que je manque quelque chose, y a-t-il autre chose que je devrais faire?

BTW, j'ai essayé ce code:

printf( 
    '<pre>%s</pre>', 
    var_export( $GLOBALS['wp_scripts']->registered, TRUE )
);

comme suggéré ici . Il n'avait pas ce CSS particulier dans la sortie.

5
max

Remarque: le nom du fichier est functions.php, pas function.php (mais ce n'est probablement qu'une faute de frappe dans la question).

Pour supprimer un script ou un style, vous devez le supprimer après son ajout. Si vous essayez de le supprimer avant son ajout, ou même d'imprimer $GLOBALS['wp_scripts']->registered, rien ne se passera, puisqu'il n'a pas encore été ajouté.

Un moyen de les supprimer consiste donc à exécuter la fonction _remove_style le plus tard possible.

En outre, vous devez vous assurer que vous utilisez le bon descripteur utilisé pour mettre en file d'attente le fichier CSS. Dans ce cas, le descripteur correct est: yasrcss (crédit de @thedeadmedic ).

En combinant tous ces éléments, vous pouvez essayer le CODE suivant:

add_action( 'wp_enqueue_scripts', '_remove_style', PHP_INT_MAX );
function _remove_style() {
    wp_dequeue_style( 'yasrcss' );
}
4
Nazaria

Pour supprimer la feuille de style de quelques pages sélectionnées, ouvrez votre fichier function.php et placez le code ci-dessous dans ce fichier. Dans le tableau d'id de la page, il cible uniquement une page spécifique sur laquelle vous ne souhaitez pas appliquer votre code CSS.

add_action('init','_remove_style');
function _remove_style(){
   global $post;
   $pageID = array('20','30', '420');//Mention the page id where you do not wish to include that script

   if(in_array($post->ID, $pageID)) {
       wp_dequeue_style('your_style_sheet.css'); 
   }
}
1