web-dev-qa-db-fra.com

Supprimer CSS Genericons Helper du thème vingt-quatre

Je voudrais supprimer les styles genericons-css chargés par défaut dans le thème vingt-quatorze.

<link rel='stylesheet' id='genericons-css'  href='http://ffwdconsulting.com/wp/wp-content/themes/twentyfourteen/genericons/genericons.css?ver=3.0.2' type='text/css' media='all' />

J'ai suivi Comment supprimer le fichier CSS dans l'en-tête en utilisant les fonctions Wordpress? avec ce code:

function dequeue_my_css() {
  wp_dequeue_style('genericons-css');
  wp_deregister_style('genericons-css');
}
add_action('wp_enqueue_scripts','dequeue_my_css');

mais ne fonctionne pas. Le lien vers css apparaît toujours dans l'en-tête.

1
Pico

Tout d’abord, vous essayez de désenregistrer une feuille de style qui n’existe pas. Voici comment la feuille de style genericon est mise en file d'attente sur vingt-quatre

wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.0.2' );

Vous essayez de retirer le nom du fichier de la feuille de style. Voici la fonction wp_enqueue_style()

wp_enqueue_style( $handle, $src, $deps, $ver, $media );

La partie importante ici est le $handle

$ handle (chaîne) (obligatoire) Nom utilisé comme identificateur pour la feuille de style.

Vous devez utiliser le $handle si vous devez retirer une feuille de style de la file d'attente. Une autre chose à retenir, vous utilisez un thème pour enfants (je l’espère vraiment). Les fonctions de thème enfants étant chargées en premier, vous devez attribuer à votre fonction de désenregistrement une priorité supérieure à 10, faute de quoi vos fonctions ne fonctionneront pas.

Voici la fonction de travail

function dequeue_my_css() {
  wp_dequeue_style('genericons');
  wp_deregister_style('genericons');
}
add_action('wp_enqueue_scripts','dequeue_my_css', 100);

Dans le thème vingt-quatorze, cela rompra toutefois le style complet de votre thème. Malheureusement, l'auteur a fait en sorte que la feuille de style principale soit dépendante de la feuille de style genericon. Par conséquent, si vous supprimez la file de styles de génicon, vous supprimez également la feuille de styles principale.

3
Pieter Goosen

Voici une solution que vous pouvez envisager en tenant compte de ce que @goose a déjà déclaré:

Vous pouvez et devriez toujours créer un thème enfant, alors pourquoi ne pas copier sur la feuille de style des thèmes parents, suspendre vos génériques, puis mettre en file d'attente votre feuille de style des thèmes enfants.

function dequeue_twenty_fourteen_css() {
  wp_dequeue_style('genericons');
  wp_deregister_style('genericons');
}
add_action('wp_enqueue_scripts','dequeue_twenty_fourteen_css', 100);


wp_enqueue_style( 'twenty-fourteen-style', get_stylesheet_directory_uri() . '/style.css', array(), '1.0.0' );

Vous ajouteriez également quelque chose comme ceci à l'en-tête du fichier style.css de votre thème enfant après la copie de la feuille de style des thèmes parents.

/*
Theme Name: 2014 Child
Description:    Child Theme for TWenty Fourteen
Author: Brad Dalton http://wpsites.net
Template: twentyfourteen
*/

@import url("../twentyfourteen/style.css");

Testé et fonctionne.

1
Brad Dalton