Overrider les fichiers du thème parent

Overrider les fichiers du thème parent

 

Après des heures de galères sur un site, j’ai enfin trouvé une solution pour annuler les fichiers js non désirables d’un thème parent, et charger ses propres fichiers dans le thème enfant.

Le thème en question ici est le thème One tone, thème wordpress gratuit, pas mal du tout.Le hic c’est qu’en suivant la procédure classique deregister, dequeue puis register et enqueue, ca ne marche pas, c’est toujours le fichier du thème parent qui reste actif.Notre fichier est bien chargé, mais complètement ignoré.

En fait ce code standard :

function remove_scripts()

{
wp_deregister_script('onetone-default');
wp_dequeue_script('onetone-default');

}
add_action( 'wp_enqueue_scripts', 'remove_scripts' );

function script()
{
wp_register_script('lmp', get_stylesheet_directory_uri() . '/js/lmp.js', array( 'jquery' ), '1.4.3', true );
wp_enqueue_script('lmp');


}

add_action('wp_print_scripts','script');

ne fonctionne pas.

En fouillant un peu, je suis tombé sur cette version qui elle fonctionne: on utilise plus de enqueue, mais un print

add_action( 'wp_print_scripts', 'child_overwrite_scripts', 100 );



function child_overwrite_scripts() {
wp_deregister_script( 'onetone-default' );
}

function script()
{
wp_register_script('lmp', get_stylesheet_directory_uri() . '/js/lmp.js', array( 'jquery' ), '1.4.3', true );
wp_enqueue_script('lmp');


}

add_action('wp_print_scripts','script');

Cette fois, en faisant un ctrl O dans l’inspecteur, on s’apercoit qu’il n’y a plus de fichier js parent, et c’est bien notre fichier qui est pri en compte

Bien que cette solution ne soit pas recommandée, elle fonctionne néanmoins sur ce thème.