web-dev-qa-db-fra.com

Comment puis-je retirer du fichier CSS un thème parent?

Mon thème parent (Starkers) ajoute un fichier CSS que j'essaie de supprimer (je veux utiliser @import à la place pour pouvoir remplacer les styles plus facilement). Starkers a les fonctions suivantes dans le fichier functions.php:

add_action( 'wp_enqueue_scripts', 'script_enqueuer' );

function script_enqueuer() {
    wp_register_script( 'site', get_template_directory_uri().'/js/site.js', array( 'jquery' ) );
    wp_enqueue_script( 'site' );

    wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
    wp_enqueue_style( 'screen' );
}

J'ai essayé ce qui suit dans le fichier functions.php, mais les balises link et script apparaissent toujours dans la section head.

add_action('init', 'removeScripts');
function removeScripts() {
    wp_dequeue_style('screen');
    wp_deregister_script('site');
}

J'ai vérifié deux fois pour voir s'ils sont codés en dur dans l'en-tête parent et s'ils ne le sont pas.

31
jmotes

Je veux utiliser @import à la place pour pouvoir remplacer les styles plus facilement

Simplement. Ne pas Faire. Cette.

Vous sautez simplement dans le même crochet, puis désenregistrez/retirez les styles/scripts et ajoutez vos styles personnalisés.

function PREFIX_remove_scripts() {
    wp_dequeue_style( 'screen' );
    wp_deregister_style( 'screen' );

    wp_dequeue_script( 'site' );
    wp_deregister_script( 'site' );

    // Now register your styles and scripts here
}
add_action( 'wp_enqueue_scripts', 'PREFIX_remove_scripts', 20 );

La raison pour retirer de la file d'attente et désenregistrer les scripts est simple:

Notez que si vous souhaitez pouvoir utiliser l'un de ces descripteurs ('screen' ou 'site') après les avoir retirés de la file d'attente, vous devez également les désenregistrer. Par exemple: wp_deregister_style( 'screen' ); et wp_deregister_script( 'site' ); - peterjmag

37
kaiser