WordPress : La zone de texte JS personnalisée dans le personnalisateur est mal formatée dans le document

Publié par Jean-Michel le

J’ai créé un thème wordpress, dans le personnalisateur de thème wordpress, j’ai ajouté quelques zones de texte où un utilisateur peut saisir son propre CSS ou JS à ajouter à la tête.

Le placement de la zone de texte est correct, c’est-à-dire que lorsqu’un utilisateur ajoute du code, il s’affiche au bon endroit dans la page, mais il est formaté différemment.

Par exemple, j’ajoute le code suivant à l’une des zones de texte :

jQuery(document).ready(function($){
    $('full_page').css('min-height',($(window).height()-195));
});

Et dans mon thème, il est sorti comme ceci:

jQuery(document).ready(function($){
    $('full_page').css('min-height',($(window).height()-195));
});

Comme vous pouvez le voir, le 'est remplacé par'

Voici le code dans mon fichier customizer.php pour créer la zone de texte :

$controls[] = array(
        'type'     => 'textarea',
        'setting'  => 'js',
        'label'    => __( 'Custom JS', 'skizzar_bootstrap' ),
        'subtitle' => __( 'You can write your custom JavaScript/jQuery here. The code will be included in a script tag appended to the top of the page.', 'skizzar_bootstrap' ),
        'section'  => 'advanced',
        'priority' => 6,
        'default'  => '',
    );

Pour sortir dans mon thème, j’utilise:

<script><php echo get_theme_mod('js'); ?></script>

Existe-t-il un moyen d’empêcher ce formatage de se produire?

Solution n°1 trouvée

@sam-skirrow vient de poster ici ce que nous avons fait pour résoudre ce problème…

WordPress 4.1 nous oblige à utiliser un sanitize_callbackfiltre lors de la création des paramètres du personnalisateur (pour une bonne raison). Étant donné que vous utilisez le framework kirki pour créer ces paramètres de personnalisation, kirki détecte qu’il s’agit d’un champ de zone de texte et applique donc automatiquement le esc_textareafiltre.

Cependant, vous pouvez remplacer ce rappel et utiliser le vôtre lors de la déclaration du champ, donc tout ce que nous devions faire pour résoudre ce problème était d’ajouter un calback de désinfection js au lieu du esc_textarea.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *