WordPress - mettre en File d'attente des scripts pour que si LT IE 9
Dans un thème WordPress, comment voulez-vous conditionnellement inclure des scripts pour ie8 et ci-dessous? C'est principalement pour appliquer polyfills pour diverses html5/css3. Je vois que wp a l' $is_IE variable qui peut être utilisé comme une condition de n'inclure que des scripts pour IE. Est-il possible d'ajouter le script uniquement pour certaines versions d'IE mais plutôt que tous les autres? C'est simple avec quelques HTML ie commentaires conditionnels, mais j'aimerais inclure des scripts tous au même endroit, dans mes fonctions de fichier.
Conditionnelle pour des versions spécifiques dans le HTML:
<!--[if lt IE 9]> <script src="iepolyfill.min.js"></script> <![endif]-->
Conditionnelle pour tous c'est à dire dans WP:
global $is_IE;
if ( $is_IE ) {
wp_enqueue_script( 'iepolyfill', bloginfo('stylesheet_directory').'/js/iepolyfill.min.js' );
}
J'ai regardé autour et surtout trouver des détails sur conditionnelle scripts pour wp backend seulement.
Des suggestions?
Vous devez vous connecter pour publier un commentaire.
Que wordpress est un script PHP, il peut accéder au serveur de variable via la variable $_SERVER
Ensuite, vous pouvez effectuer une recherche pour détecter le navigateur avec PHP, PHP: Si internet explorer 6, 7, 8 , ou 9
wp_enqueue_script
, de la manière prescrite d'ajouter du javascript à votre thème.Pour WordPress 4.2+
Utilisation
wp_script_add_data
pour envelopper le script dans un commentaire conditionnel:Juste assurez-vous d'enregistrer le script avant de l'appeler
wp_script_add_data
(l'inscription est gérée parwp_enqueue_script
ci-dessus), et que le premier argument que vous passez àwp_script_add_data
correspond au premier argument que vous avez passé quand vous avez enregistré le script.Pour WordPress 4.1
Vous pouvez utiliser le
script_loader_tag
filtre aujourd'hui pour mettre en file d'attente des scripts enveloppé dans les commentaires conditionnels. Voici un exemple de mise en œuvre:Et si vous souhaitez inclure plus d'un script de la même manière, vous pouvez utiliser quelque chose comme:
wp_head
pourwp_footer
?script_loader_tag
a été ajouté dans la section 4.1. Soutien pour$wp_scripts->add_data( 'html5shiv', 'conditional', 'lt IE 9' );
a été ajouté dans la section 4.2.wp_register_script()
chaque fois que vous ajouter des scripts à votre WP thèmes ou de plugins.Pour IE, les balises conditionnelles fonctionnent très bien. Voici comment vous pouvez ajouter des balises conditionnelles dans un script, exemple est pour HTML5shiv:
$wp_styles
. Liées billet: #16024.Solution pour WordPress 4.2 et au-dessus de
La bonne façon serait d'appliquer wp_enqueue_script car il JavaScripts, ici, et pas des styles css. Aussi, il est préférable d'utiliser get_bloginfo('stylesheet_url') pour s'assurer que cela fonctionne aussi dans les Thèmes de l'Enfant.
get_template_directory_uri().'/js/lib/excanvas.js'
dans mon thème functions.phpMise à jour pour WordPress 4.7.3 avec des scripts de chargement du CDN:
La meilleure façon de le faire est de mettre en file d'attente les scripts et ensuite utiliser wp_style_add_data() pour mettre conditionnelle. Cette méthode est utilisée par les thèmes comme vingt treize
Il n'y est une réponse similaire à cela, mais il ajoute un supplément si dans la condition qui est faux.
Essayez d'utiliser la
wp_style_add_data()
fonction (officiellement utilisé dans twentythirteen et twentyfourteen thème:Mise à jour: Depuis WordPress >= 4.2.0 il y a une fonction qui est utilisée de la même manière. Il est appelé:
wp_style
logique pour l'ajout de JavaScript? Il ajoute le fichier en tant que<script>
élément et non pas comme un<link>
élément?