web-dev-qa-db-fra.com

Comment retirer tous les actifs de WordPress

Je souhaite supprimer la file d'attente de tous les styles et scripts chargés par le serveur frontal (par exemple, pas le panneau d'administration) par défaut.

J'ai trouvé cette fonction , mais je ne sais pas comment l'utiliser pour atteindre mon objectif.

Je vois une tonne d'actifs dont je n'ai pas besoin au départ, chargés par WP core:

Par exemple:

  1. backbone.js
  2. jquery UI
  3. jquery UI datepicker
  4. 5 actifs mediaelement différents (js + css)
  5. underscore.js
  6. wp-embed js
  7. wp-util js
1
KJ Prince

Je ne suis pas sûr de ce que vous avez besoin de plus de l'exemple ici, et souvenez-vous que certains scripts sont nécessaires pour des éléments tels que la barre d'administration et ne sont pas mis en file d'attente si vous n'êtes pas connecté.

function wpdocs_dequeue_script() {
   wp_dequeue_script( 'jquery-ui-core' );
}
add_action( 'wp_print_scripts', 'wpdocs_dequeue_script', 100 );

Cela retirera le js de jquery-ui-core. Ajouter plus de lignes de 'wp_dequeue_script' avec le JS que vous voulez retirer de la file d'attente les supprimera également. Vous pouvez trouver tous les descripteurs dans un dump de $ wp_scripts.

<?php global $wp_scripts; var_dump($wp_scripts); ?>
1

Cela fera l'affaire pour vous, en supposant que vous n'avez pas d'actifs supplémentaires personnalisés à charger depuis le répertoire/wp-admin/dans le frontend.

Cela prend les globales $ wp_scripts et $ wp_styles, itère à travers les ressources enregistrées et annule l'enregistrement des ressources qui ont un répertoire source ne contenant pas '/ wp-admin /'.

function my_deregister_scripts_and_styles() {
    global $wp_scripts, $wp_styles;

    foreach($wp_scripts->registered as $registered)
        if(strpos($registered->src,'/wp-admin/')===FALSE)
            wp_deregister_script($registered->handle);

    foreach($wp_styles->registered as $registered)
        if(strpos($registered->src,'/wp-admin/')===FALSE)
            wp_deregister_style($registered->handle);
}
add_action( 'wp_enqueue_scripts', 'my_deregister_scripts_and_styles');
1
Alex Protopopescu