Wie entferne ich dashicons.min.css vom Frontend?

10

Gibt es eine Möglichkeit, die Datei dashicons.min.css aus dem Frontend zu entfernen? Ich weiß, dass sie vom Admin-Panel verwendet werden, aber mein Thema verwendet sie nicht, so dass es eine unnötige Anfrage ist.

Slevin
quelle
Dieses Stylesheet ist standardmäßig nicht in der Warteschlange. Ein Thema oder ein Plugin stellt es in die Warteschlange.
Fuxia

Antworten:

18

Versuchen Sie, dieses Stylesheet abzumelden -

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

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


}
WisdmLabs
quelle
Wo hast du es versucht? Versuchen Sie es in 'wp_print_styles' Hook in functions.php
WisdmLabs
Ja, ich habe dies zu meiner functions.php hinzugefügt. Aber wp_deregister_style und wp_dequeue_style funktionieren nicht.
Slevin
1
wp_deregister_style('dashicons');hat den Trick gemacht.
Slevin
1
OK, das heißt, der Name des Handles lautet "Dashicons". Lassen Sie mich die Antwort aktualisieren, damit sie für andere hilfreich ist.
WisdmLabs
13

Wenn Sie Dashicons nur für Administratoren laden möchten, versuchen Sie, diese in die Datei functions.php einzufügen:

// remove dashicons in frontend to 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' );
JoseLazo
quelle
7

Hier ist meine Lösung für dieses Problem. Es ähnelt den oben von WisdmLabs und JoseLazo vorgeschlagenen, führt jedoch eine bessere bedingte Prüfung durch. Der Dashicons-Stil wird für alle angemeldeten Benutzer geladen, die zu einer beliebigen Rolle gehören (und nicht nur für Administratoren), da der Dashicons-Stil erforderlich ist, um die Frontend-Administrationsleiste ordnungsgemäß anzuzeigen.

// Remove dashicons in frontend for unauthenticated users
add_action( 'wp_enqueue_scripts', 'bs_dequeue_dashicons' );
function bs_dequeue_dashicons() {
    if ( ! is_user_logged_in() ) {
        wp_deregister_style( 'dashicons' );
    }
}
marcochiesi
quelle
0

Wenn Sie CSS-Stile von den Themen Ihres untergeordneten Themas abmelden möchten functions.php, würde ich empfehlen, im übergeordneten Thema zu navigieren und nach der wp_enqueue_style()Methode zu suchen, die für das zu entfernende Stylesheet angewendet wird.

Zum Beispiel, wenn Sie app.cssin Ihrem untergeordneten Thema entfernen möchten ,

Suchen Sie app.cssin Ihrem übergeordneten Thema nach dem Code, der diesen Stil in die Warteschlange stellt.

Sie können so etwas finden

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

Fügen Sie nun in Ihrem functions.phpThema für Ihr Kind den folgenden Ausschnitt hinzu:

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

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

Der Haken ist, dass wp_derigster_stlye('app')das hier nicht funktioniert.

Dies ist ein kleines Problem, das manche Leute möglicherweise übersehen und daher hier veröffentlichen.

Shoaib Ali CH
quelle
0

Ich musste mich sowohl aus der Warteschlange entfernen als auch abmelden, damit es funktionierte. Wie bereits erwähnt, benötigt der Administrator Dashicons, sodass Sie diese nur entfernen möchten, wenn der Benutzer nicht angemeldet ist.

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' );
    }
}
Schwerelosigkeit
quelle