Comment puis-je désactiver tous les fichiers js des plugins et charger un seul fichier js que j'ai combiné et compressé?
Y a-t-il un moyen?
Semblable à la première réponse, mais cela devrait marcher
function remove_all_scripts() {
foreach( wp_scripts()->registered as $script ) {
wp_dequeue_script( $script );
wp_deregister_script( $script );
}
}
add_action('wp_enqueue_scripts', 'remove_all_scripts', PHP_INT_MAX);
Vous pouvez installer un plug-in tel que asset Queue Manager pour garder une trace de toutes les feuilles de style actives et de tous les fichiers JavaScript cassé ou non), puis dans le fichier functions.php
de votre thème, mettez un code comme celui-ci
add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );
function my_deregister_javascript() {
$deregistered_scripts=array('wc-add-to-cart',
'woocommerce',
'storefront-skip-link-focus-fix',
'wc-add-to-cart-variation',
'wc-cart-fragments',
'storefront-navigation',
'wc-single-product');
foreach ($deregistered_scripts as $key => $script) {
wp_deregister_script( $script );
}
}
(bien sûr, vous voudrez peut-être remplacer le tableau $deregistered_scripts
par ceux que vous n'utiliserez pas)
Si votre blog est en mode développement et que vous trouvez un message d'erreur après cela, un plug-in peut être à l'origine du problème. Essayez d'ajouter un @ à la ligne 250 de /wp-includes/class.wp-scripts.php
(cela m'a permis de résoudre un avertissement d'erreur lancé par woocommerce).
public function set_group( $handle, $recursion, $group = false ) {
if ( @$this->registered[$handle]->args === 1 ) //"@" added
$grp = 1;
else
$grp = (int) $this->get_data( $handle, 'group' );
if ( false !== $group && $grp > $group )
$grp = $group;
return parent::set_group( $handle, $recursion, $grp );
}
Edit : le code de désenregistrement de scripts a été ajouté à partir de cet article de blog de Justin Tadlock
Vous pouvez essayer de faire quelque chose comme ça:
add_action( 'wp_enqueue_scripts', 'wpse8170_disable_all_scripts', 9999 );
function wpse8170_disable_all_scripts() {
global $wp_scripts, $wp_styles;
$wp_styles = new WP_Styles(); // reset all styles
$wp_scripts = new WP_Scripts(); // reset all scripts
}
Mais faites attention que c’est une mauvaise habitude de faire ce que vous voulez faire et que cela pourrait conduire à des résultats inattendus à l’avenir.