Как удалить dashicons.min.css из фронтенда?

15 сент. 2014 г., 21:21:49
Просмотры: 70.7K
Голосов: 20

Есть ли способ удалить файл dashicons.min.css из фронтенда? Я знаю, что они используются в панели администратора, но моя тема их не использует, поэтому это лишний запрос.

1
Комментарии

Эта таблица стилей не подключается по умолчанию. Она подключается темой или плагином.

fuxia fuxia
16 сент. 2014 г. 00:10:41
Все ответы на вопрос 8
5
27

Попробуйте отменить регистрацию этой таблицы стилей -

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

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


}
15 сент. 2014 г. 21:52:57
Комментарии

Где вы пробовали это сделать? Попробуйте использовать хук 'wp_print_styles' в functions.php

Domain Domain
15 сент. 2014 г. 22:16:32

Да, я добавил это в свой functions.php. Но wp_deregister_style и wp_dequeue_style не работают.

Slevin Slevin
15 сент. 2014 г. 22:44:53

wp_deregister_style('dashicons'); сработало.

Slevin Slevin
15 сент. 2014 г. 22:53:19

Хорошо, значит, название обработчика — 'dashicons'. Позвольте мне обновить ответ, чтобы он был полезен другим.

Domain Domain
16 сент. 2014 г. 09:16:40

после добавления этого я потерял стили админ-панели для администратора и, возможно, для зарегистрированных пользователей, поэтому использовал следующее решение: // удаляем dashicons во фронтенде для не-администраторов это сработало

Yerbol Yerbol
17 апр. 2023 г. 16:08:05
0
21

Если вы хотите загружать dashicons только для администратора, добавьте этот код в файл functions.php:

// удаляем dashicons во фронтенде для не-администраторов
    function wpdocs_dequeue_dashicon() {
        if (current_user_can( 'update_core' )) {
            return;
        }
        wp_deregister_style('dashicons');
    }
    add_action( 'wp_enqueue_scripts', 'wpdocs_dequeue_dashicon' );
15 дек. 2016 г. 10:10:57
1
19

Вот моё решение этой проблемы. Оно похоже на предложенные выше варианты от WisdmLabs и JoseLazo, но выполняет более точную проверку условия. Стили dashicons загружаются для всех авторизованных пользователей с любой ролью (а не только для администраторов), так как стиль dashicons необходим для правильного отображения административной панели во фронтенде.

// Удаляем dashicons во фронтенде для неавторизованных пользователей
add_action( 'wp_enqueue_scripts', 'bs_dequeue_dashicons' );
function bs_dequeue_dashicons() {
    if ( ! is_user_logged_in() ) {
        wp_deregister_style( 'dashicons' );
    }
}
29 сент. 2017 г. 17:15:19
Комментарии

Отлично работает, большое спасибо.

MitchellK MitchellK
6 апр. 2021 г. 11:02:33
0

используйте wp_dequeue_style. http://codex.wordpress.org/Function_Reference/wp_dequeue_style

может быть так, что другая таблица стилей указывает dashicons в качестве зависимости, поэтому если отключение не сработает, проверьте это.

15 сент. 2014 г. 22:15:11
0

Если вы хотите отменить регистрацию CSS-стилей в дочерней теме через файл functions.php, я рекомендую изучить родительскую тему и найти метод wp_enqueue_style(), который применяется для таблицы стилей, которую вы хотите удалить.

Например, если вы хотите убрать app.css в дочерней теме,

найдите app.css в родительской теме и определите код, который подключает этот стиль.

Вы можете обнаружить что-то вроде:

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

Теперь в вашем functions.php для дочерней темы добавьте следующий фрагмент:

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

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

Важно: wp_deregister_style('app') здесь не сработает.

Это небольшая деталь, которую могут упустить, поэтому я решил поделиться этим здесь.

20 июн. 2016 г. 08:55:25
0

Я обнаружил, что для работы необходимо как убрать из очереди (dequeue), так и отменить регистрацию (deregister) стилей. Как упоминалось ранее, админ-панель требует dashicons, поэтому удалять их следует только если пользователь не авторизован.

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 апр. 2020 г. 08:40:36
0

Решение возможно путем комбинирования

    // Удаление dashicons во фронтенде для неавторизованных пользователей
add_action( 'wp_enqueue_scripts', 'bs_dequeue_dashicons' );
function bs_dequeue_dashicons() {
    if ( ! is_user_logged_in() ) {
        wp_deregister_style( 'dashicons' );
    }
}

и метода, который он использует для замены набора Dashicon на Font Awesome в документации

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 мар. 2021 г. 22:23:01
0

Не уверен, как клиент в итоге будет загружать dashicons.min.css как ресурс на фронтенде. Я знаю, что вы уточнили, что этот файл не подключается по умолчанию, и его подключает тема или плагин.

Я поддерживаю ответ выше от @marcochiesi, однако, если вы ищете этот ответ после запуска аудита Lighthouse в Chrome, убедитесь, что вы не авторизованы как администратор WordPress на момент запуска отчёта, потому что при авторизации любая страница будет иметь административную панель вверху, видимую и доступную для аудита Lighthouse.

18 июн. 2021 г. 08:19:15