wp_enqueue_style и rel, кроме таблицы стилей?
Я создаю (или лучше попробую) создать свою первую тему WordPress с помощью Less.
Что я делаю, так это использую такой скрипт в моем 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()?
2 ответа
Хотя ни одна из функций не позволит вам передать это значение, у вас есть доступ к тегу до его визуализации с помощью фильтра 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() или что-то подобное, чтобы заменить значение на то, что вы хотите. Кроме того, этот фильтр будет запускаться каждый раз, когда вы ставите таблицу стилей в очередь, поэтому перед изменением атрибута rel убедитесь, что вы проверяли, что у вас есть правильный (с preg_match() или чем-то еще).
Я знаю, что это старый вопрос, но это помогло мне понять это. заимствуя из ответа 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);
}