@Lexius

Как правильно добавить в functions.php стили Font Awesome и другие, использующие дополнительные атрибуты (integrity, crossorigin)?

Здравствуйте! Я еще очень плохо разбираюсь в языке PHP и возможностях Wordpress, поэтому решил задать вопрос знатокам. Насколько страшно вставлять стили по-старинке в header.php? Потому что без костылей вставить простую строчку типа:
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">
в код functions.php я не нашел. Нашел вот такое решение с массивами:
add_filter('script_loader_tag', 'add_attributes_to_script', 10, 3); 
function add_attributes_to_script( $tag, $handle, $src ) {

$scripts_to_load = array (

    (0) => Array
      (
        ('name') => 'bootstrap_min_css',
        ('type') => '<link rel="stylesheet" href="',            
        ('integrity') => 'sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB',
        ('close') => ' type="text/css" media="all">'
      ),

    (1) => Array
      (
        ('name') => 'popper_min_js',
        ('type') => '<script type="text/javascript" src="',         
        ('integrity') => 'sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49',
        ('close') => '></script>'
      ),

     (2) => Array
       (
        ('name') => 'bootstrap_min_js', 
        ('type') => '<script type="text/javascript" src="',
        ('integrity') => 'sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T',
        ('close') => '></script>'
       )
);  

$key = array_search($handle, array_column($scripts_to_load, 'name'));

if ( FALSE !== $key){

    $tag = $scripts_to_load[$key]['type'] . esc_url($src) . '" integrity="' . $scripts_to_load[$key]['integrity'] .'" crossorigin="anonymous"' . $scripts_to_load[$key]['close'] . "\n";

}
return $tag;
}

по аналогии добавил свою строку, но после этого внезапно пропали настройки в админке у плагина qTranslate X.
Может подключить Font Awesome через готовый плагин? У меня предубеждение к плагинам, что они перегружены лишними для меня функциями и загружают зря сервер, или в основном это не так?
Есть вообще простое и изящное решение всего одну строку добавить в functions.php?
  • Вопрос задан
  • 393 просмотра
Решения вопроса 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Здравствуйте.

Думаю можно попробовать с помощью фильтра style_loader_tag.

add_filter( 'style_loader_tag', 'add_attribute', 10, 2 );

function add_attribute($link, $handle) {
    if( $handle == 'fontawesome' ) {
        $link = str_replace( '/>', 'integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous" />', $link );
    }
    return $link;
}


$handle — это значение первого параметра в функции wp_enqueue_style.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@branky
Вы можете удобно редактировать параметры 'integrity' с помощью пользовательской функции. Я сделал пример, который сейчас использую в рабочем проекте, посмотрите моё решение: Как подключить Bootstrap к WordPress через CDN
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы