То, что я пытаюсь сделать, это использовать меньше CSS с Wordpress.
Вы должны ссылаться на ваши файлы .less с атрибутом rel, установленным на 'stylesheet / less'. Но я не могу понять, как изменить код, который выводит enqueue_style.
Есть ли способ применить фильтр и повлиять на вывод?
РЕДАКТИРОВАТЬ: Если кому-то интересно, как я в конечном итоге заставить это работать, вот фрагмент кода:
function enqueue_less_styles($tag, $handle) {
global $wp_styles;
$match_pattern = '/\.less$/U';
if ( preg_match( $match_pattern, $wp_styles->registered[$handle]->src ) ) {
$handle = $wp_styles->registered[$handle]->handle;
$media = $wp_styles->registered[$handle]->args;
$href = $wp_styles->registered[$handle]->src . '?ver=' . $wp_styles->registered[$handle]->ver;
$rel = isset($wp_styles->registered[$handle]->extra['alt']) && $wp_styles->registered[$handle]->extra['alt'] ? 'alternate stylesheet' : 'stylesheet';
$title = isset($wp_styles->registered[$handle]->extra['title']) ? "title='" . esc_attr( $wp_styles->registered[$handle]->extra['title'] ) . "'" : '';
$tag = "<link rel='stylesheet' id='$handle' $title href='$href' type='text/less' media='$media' />";
}
return $tag;
}
add_filter( 'style_loader_tag', 'enqueue_less_styles', 5, 2);
filters
wp-enqueue-style
cbaigorri
источник
источник
$tag = "<link rel='stylesheet/less' id='$handle' $title href='$href' type='text/less' media='$media' />\r\n";
Ответы:
Да, окончательный вывод ссылки стиля проходит через
style_loader_tag
фильтр.источник
Я сделал функцию, которая использует метод query () класса WP_Dependancies. Кроме того, он не восстанавливает вывод, а просто переписывает необходимые части.
Функция обращается к глобальному объекту $ wp_styles и выполняет запрос для получения объекта таблицы стилей. С помощью регулярного выражения src проверяется, содержит ли он файл .less, и если это так, атрибут rel соответствующим образом изменяется. Кроме того, в своей функции я заменил суффикс -css в идентификаторе на -less, просто удалите эту строку, если она вам не нравится.
источник
изменить ,
rel=stylesheet
чтобыrel=stylesheet/less
в$tag
определении .. тожеrel=alternate stylesheet/less
, не работает ..источник
Спасибо за Ваш ответ. Это не сработало для меня, пока я не положил эхо вместо возвращения:
источник