Come rimuovere dashicons.min.css dal frontend?
Esiste un modo per rimuovere il file dashicons.min.css dal frontend? So che viene utilizzato dal pannello di amministrazione, ma il mio tema non lo usa quindi risulta essere una richiesta non necessaria.

Sì, ho aggiunto questo al mio functions.php. Ma wp_deregister_style e wp_dequeue_style non funzionano.

OK, quindi significa che il nome dell'handle è 'dashicons'. Aggiornerò la risposta in modo che possa essere utile anche ad altri.

Se vuoi caricare le dashicons solo per gli utenti amministratori, prova ad inserire questo nel file functions.php:
// rimuove dashicons nel frontend per i non amministratori
function wpdocs_dequeue_dashicon() {
if (current_user_can( 'update_core' )) {
return;
}
wp_deregister_style('dashicons');
}
add_action( 'wp_enqueue_scripts', 'wpdocs_dequeue_dashicon' );

Ecco la mia soluzione a questo problema. È simile a quelle proposte da WisdmLabs e JoseLazo sopra, ma esegue un controllo condizionale migliore. Lo stile dashicons viene caricato per tutti gli utenti loggati appartenenti a qualsiasi ruolo (e non solo agli amministratori) poiché lo stile dashicons è necessario per visualizzare correttamente la barra di amministrazione frontend.
// Rimuove dashicons nel frontend per utenti non autenticati
add_action( 'wp_enqueue_scripts', 'bs_dequeue_dashicons' );
function bs_dequeue_dashicons() {
if ( ! is_user_logged_in() ) {
wp_deregister_style( 'dashicons' );
}
}

usa wp_dequeue_style. http://codex.wordpress.org/Function_Reference/wp_dequeue_style
potrebbe essere che qualche altro foglio di stile elenchi dashicons come dipendenza, quindi se il dequeueing non funziona, verifica questo.

Se vuoi deregistrare gli stili CSS dal file functions.php
del tuo child theme, ti suggerisco di navigare nel tema genitore e cercare il metodo wp_enqueue_style()
applicato al foglio di stile che vuoi rimuovere.
Ad esempio, se vuoi rimuovere app.css
nel tuo child theme,
cerca app.css
nel tuo tema genitore e trova il codice che inserisce questo stile.
Potresti trovare qualcosa come
wp_enqueue_style('parent_theme_style', get_template_directory_uri() . '/assets/css/app.css', false, '2.2');
Ora, nel tuo functions.php
per il child theme, aggiungi il seguente snippet:
add_action( 'wp_print_styles', 'my_deregister_styles', 200 );
function my_deregister_styles() {
wp_deregister_style('parent_theme_style');
}
Il punto cruciale è che wp_deregister_style('app')
non funzionerà in questo caso.
Questo è un piccolo problema che alcune persone potrebbero non notare e quindi lo sto postando qui.

Ho scoperto che è necessario sia dequeue che deregister per farlo funzionare. Come menzionato in precedenza, l'admin richiede dashicons, quindi vuoi rimuoverli solo se l'utente non è loggato.
add_action( 'wp_print_styles', 'zgwd_dequeue_styles' );
function zgwd_dequeue_styles() {
if ( ! is_user_logged_in() ) {
wp_dequeue_style( 'dashicons' );
wp_deregister_style( 'dashicons' );
}
}

Una soluzione sarebbe possibile combinando
// Rimuovi dashicons nel frontend per utenti non autenticati
add_action( 'wp_enqueue_scripts', 'bs_dequeue_dashicons' );
function bs_dequeue_dashicons() {
if ( ! is_user_logged_in() ) {
wp_deregister_style( 'dashicons' );
}
}
e il metodo utilizzato per sostituire il set Dashicon con Font Awesome nella Documentazione
function megamenu_use_fontawesome_arrows( $vars, $location, $theme, $menu_id, $theme_id ) {
$vars['arrow_font'] = "'Font Awesome 5 Free'";
$vars['arrow_font_weight'] = "900";
$vars['arrow_up'] = "'\\f106'";
$vars['arrow_down'] = "'\\f107'";
$vars['arrow_left'] = "'\\f104'";
$vars['arrow_right'] = "'\\f105'";
return $vars;
}

Non sono sicuro di come il client finirà per caricare dashicons.min.css come risorsa nel front end. So che hai chiarito che il file non viene accodato di default e che è un tema o un plugin ad accodarlo.
Sono d'accordo con la risposta sopra di @marcochiesi, tuttavia, se stai cercando questa risposta dopo aver eseguito l'audit chrome lighthouse assicurati di non essere loggato come amministratore in WordPress al momento dell'esecuzione del report, perché una volta loggato qualsiasi pagina avrà la barra di amministrazione in alto, visibile e accessibile all'audit lighthouse.
