#css #wordpress #wordpress-theming #less
#css #wordpress #wordpress-тематизация #Меньше
Вопрос:
Я создаю (или лучше пытаюсь) создать свою первую тему WordPress с меньшими затратами.
Что я делаю, так это использую подобный скрипт в моем functions.php
wp_register_style('screen_css', get_bloginfo('template_url') . '/css/screen.less', array(), false, 'screen');
wp_enqueue_style('screen_css');
и в результате получается, что:
<link rel='stylesheet' id='stigma_screen-css' href='http://www.stigmahost.dch/wp-content/themes/stigmahost/css/screen.less?ver=1.0' type='text/css' media='screen' />
Вопрос в том, могу ли я как-то изменить rel =»stylesheet» при использовании функции wp_register_style() ?
Комментарии:
1. Ни одна из функций wp_register_style(), ни wp_enqueue_style() не позволят вам установить атрибут rel, но если вы можете предоставить больше информации о том, чего вы пытаетесь достичь, может быть, я смогу предложить обходной путь?
Ответ №1:
Хотя ни одна из функций не позволит вам передать это значение, у вас есть доступ к тегу до того, как он будет отображен с помощью фильтра style_loader_tag. Если вы сделаете что-то подобное этому…
add_filter('style_loader_tag', 'my_style_loader_tag_function');
function my_style_loader_tag_function($tag){
//do stuff here to find and replace the rel attribute
return $tag;
}
… вы должны быть в состоянии заменить атрибут rel любым, каким захотите. Имейте в виду, что этот фильтр передаст весь тег в виде html, поэтому вам придется выполнить preg_replace() или что-то подобное, чтобы заменить значение на то, что вы хотите. Кроме того, этот фильтр будет запускаться каждый раз, когда вы ставите таблицу стилей в очередь, поэтому убедитесь, что вы выбрали правильный (с помощью preg_match () или чего-то еще), прежде чем изменять атрибут rel.
Ответ №2:
я знаю, что это старый вопрос, но он помог мне разобраться в этом. заимствуя из ответа brandwaffle, вот полная функция, которую я использовал:
function childtheme_scripts() {
wp_enqueue_style('less',get_stylesheet_directory_uri() .'/style.less');
add_filter('style_loader_tag', 'my_style_loader_tag_function');
wp_enqueue_script('less',get_stylesheet_directory_uri() .'/jscripts/less-1.3.0.min.js', false,'1.3.0');
}
add_action('wp_enqueue_scripts','childtheme_scripts', 1);
function my_style_loader_tag_function($tag){
//do stuff here to find and replace the rel attribute
return preg_replace("/='stylesheet' id='less-css'/", "='stylesheet/less' id='less-css'", $tag);
}
Комментарии:
1. less не нужен jQuery AFAIK, он есть в массиве зависимостей