web-dev-qa-db-fra.com

wp_enqueue_style ne me laissera pas appliquer uniquement l'écran

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.

1
jmlumpkin

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";
3
jmlumpkin