J'utilise Roots comme démarreur pour un thème sur lequel j'ai travaillé. J'ai ensuite généré un fichier print.css, mais dans le cas de Chrome, celui-ci utilise toujours les requêtes bootstrap-responsive.css et gâche le problème.
Cette réponse sur SO explique le problème et je sais que cela résout le problème avec lequel je rencontre un problème (essayé).
Qu'est-ce qui se passe est que lorsque vous utilisez cette
wp_enqueue_style('roots_bootstrap_responsive_style', '/css/bootstrap-responsive.css', array('roots_bootstrap_style'), null, 'screen');
Il met toujours
<link rel="stylesheet" href="/css/bootstrap-responsive.css">
Quand j'en ai vraiment besoin pour montrer
<link rel="stylesheet" href="/css/bootstrap-responsive.css" media="screen">
Si j'essaie certains des autres types répertoriés sur W3 , certains fonctionnent et d'autres pas (la télévision ne rend jamais rien, mais l'impression le fait) . Par exemple, mon print one fonctionne bien:
wp_enqueue_style('roots_print_style', '/css/print.css', false, null, 'print');
Comment puis-je le faire fonctionner? Est-ce que je fais juste cela dans l'en-tête sans utiliser wp_enqueue_style, ou est-ce qu'il me manque quelque chose? Je ne reçois aucune erreur et j'utilise WP 3.5.1.
J'ai trouvé la réponse. Roots a un roots_clean_style_tag qui limite tout sauf l’impression en tant que type de support.
J'ai légèrement mis à jour le mien pour autoriser uniquement l'écran:
function roots_clean_style_tag($input) {
preg_match_all("!<link rel='stylesheet'\s?(id='[^']+')?\s+href='(.*)' type='text/css' media='(.*)' />!", $input, $matches);
// Only display media if it's print
if($matches[3][0] === 'print'){
$media = ' media="print"';
} elseif ($matches[3][0] === 'screen'){
$media = ' media="screen"';
}
else{
$media = '';
}
//$media = $matches[3][0] === 'print' ? ' media="print"' : '';
return '<link rel="stylesheet" href="' . $matches[2][0] . '"' . $media . '>' . "\n";