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()?


person KodeFor.Me    schedule 10.11.2011    source источник
comment
Ни одна из функций wp_register_style() или wp_enqueue_style() не позволит вам установить атрибут rel, но если вы можете предоставить больше информации о том, чего вы пытаетесь достичь, может быть, я смогу предложить обходной путь?   -  person brandwaffle    schedule 11.11.2011


Ответы (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() или что-то подобное, чтобы заменить значение на то, что вы хотите. Кроме того, этот фильтр будет запускаться каждый раз, когда вы ставите таблицу стилей в очередь, поэтому убедитесь, что вы проверили, что у вас есть правильная (с помощью preg_match() или чего-то еще), прежде чем изменять атрибут rel.

person brandwaffle    schedule 10.11.2011

Я знаю, что это старый вопрос, но он помог мне понять это. заимствование из ответа 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);
}
person helgatheviking    schedule 02.07.2012
comment
меньше не нужен jQuery AFAIK, он у вас есть в массиве зависимостей - person James Mitch; 22.02.2013