Cum să eliminăm fișierul dashicons.min.css din frontend?

15 sept. 2014, 21:21:49
Vizualizări: 70.7K
Voturi: 20

Există vreo modalitate de a elimina fișierul dashicons.min.css din frontend? Știu că acestea sunt folosite de panoul de administrare, dar tema mea nu le folosește, așa că este o cerere inutilă.

1
Comentarii

Această foaie de stil nu este încărcată implicit. O temă sau un plugin o încarcă.

fuxia fuxia
16 sept. 2014 00:10:41
Toate răspunsurile la întrebare 8
5
27

Încearcă să deregistrezi acea foaie de stil -

add_action( 'wp_print_styles',     'my_deregister_styles', 100 );

function my_deregister_styles()    { 
   //wp_deregister_style( 'amethyst-dashicons-style' ); 
   wp_deregister_style( 'dashicons' ); 


}
15 sept. 2014 21:52:57
Comentarii

Unde ai încercat? Încearcă să folosești hook-ul 'wp_print_styles' în functions.php

Domain Domain
15 sept. 2014 22:16:32

Da, am adăugat asta în functions.php. Dar wp_deregister_style și wp_dequeue_style nu funcționează.

Slevin Slevin
15 sept. 2014 22:44:53

wp_deregister_style('dashicons'); a funcționat.

Slevin Slevin
15 sept. 2014 22:53:19

OK, deci înseamnă că numele handle este 'dashicons'. Permite-mi să actualizez răspunsul, astfel încât să fie util și pentru alții.

Domain Domain
16 sept. 2014 09:16:40

după ce am adăugat asta, am pierdut stilurile barii de administrare pentru admin și posibil pentru utilizatorii înregistrați, așa că am folosit următoarea soluție, // elimină dashicons în frontend pentru non-admin asta a funcționat

Yerbol Yerbol
17 apr. 2023 16:08:05
0
21

Dacă dorești să încarci dashicons doar pentru utilizatorii admin, încearcă să adaugi acest cod în fișierul functions.php:

// elimină dashicons în frontend pentru utilizatorii non-admin
function wpdocs_dequeue_dashicon() {
    if (current_user_can( 'update_core' )) {
        return;
    }
    wp_deregister_style('dashicons');
}
add_action( 'wp_enqueue_scripts', 'wpdocs_dequeue_dashicon' );
15 dec. 2016 10:10:57
1
19

Iată soluția mea pentru această problemă. Este similară cu cele propuse de WisdmLabs și JoseLazo mai sus, dar realizează o verificare condițională mai bună. Stilul dashicons este încărcat pentru toți utilizatorii autentificați care aparțin oricărui rol (nu doar administratorilor), deoarece stilul dashicons este necesar pentru afișarea corectă a barii de administrare în frontend.

// Elimină dashicons în frontend pentru utilizatorii neautentificați
add_action( 'wp_enqueue_scripts', 'bs_dequeue_dashicons' );
function bs_dequeue_dashicons() {
    if ( ! is_user_logged_in() ) {
        wp_deregister_style( 'dashicons' );
    }
}
29 sept. 2017 17:15:19
Comentarii

Funcționează perfect, mulțumesc mult.

MitchellK MitchellK
6 apr. 2021 11:02:33
0

Folosește wp_dequeue_style. http://codex.wordpress.org/Function_Reference/wp_dequeue_style

Este posibil ca o altă foaie de stil să listeze dashicons ca o dependență, așa că dacă funcția dequeue nu funcționează, verifică acest lucru.

15 sept. 2014 22:15:11
0

Dacă dorești să dezînregistrezi stilurile CSS din functions.php al temei tale child, îți sugerez să navighezi prin tema părinte și să cauți metoda wp_enqueue_style() aplicată pentru fișierul de stil pe care dorești să îl elimini.

De exemplu, dacă vrei să elimini app.css în tema ta child,

caută app.css în tema părinte și găsește codul care încarcă acest stil.

Poți găsi ceva de genul:

wp_enqueue_style('parent_theme_style', get_template_directory_uri() . '/assets/css/app.css', false, '2.2');

Acum, în functions.php al temei tale child, adaugă următorul fragment:

add_action( 'wp_print_styles', 'my_deregister_styles', 200 );

function my_deregister_styles() { 
    wp_deregister_style('parent_theme_style');
    }

Important de reținut este că wp_deregister_style('app') nu va funcționa în acest caz.

Acesta este un mic detaliu pe care unii îl pot rata, de aceea l-am menționat aici.

20 iun. 2016 08:55:25
0

Am descoperit că a trebuit să dezactivez și să deregistrez stilurile pentru ca soluția să funcționeze. După cum s-a menționat anterior, panoul de administrare necesită dashicons, așa că doriți să le eliminați doar dacă utilizatorul nu este autentificat.

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' );
    }
}
9 apr. 2020 08:40:36
0

O soluție ar fi posibilă prin combinarea

    // Elimină dashicons în frontend pentru utilizatorii neautentificați
add_action( 'wp_enqueue_scripts', 'bs_dequeue_dashicons' );
function bs_dequeue_dashicons() {
    if ( ! is_user_logged_in() ) {
        wp_deregister_style( 'dashicons' );
    }
}

și metoda pe care o folosește pentru a înlocui setul Dashicon cu Font Awesome în Documentație

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;
}
11 mar. 2021 22:23:01
0

Nu sunt sigur cum clientul va ajunge să încarce dashicons.min.css ca resursă în front-end. Știu că ai clarificat că fișierul nu este încărcat implicit și că o temă sau un plugin îl încarcă.

Susțin răspunsul de mai sus oferit de @marcochiesi, totuși, dacă cauți acest răspuns după ce ai rulat auditul Lighthouse din Chrome, asigură-te că nu ești autentificat ca administrator în WordPress în momentul rulării raportului, deoarece odată autentificat, orice pagină va avea bara de administrare în partea de sus, vizibilă și accesibilă pentru auditul Lighthouse.

18 iun. 2021 08:19:15