web-dev-qa-db-fra.com

JavaScript dans WordPress Customizer

Codes de personnalisation:

$wp_customize->add_setting (
    'script-code',
    array (
        'default' => esc_html__( 'Script Code', 'x' ),
        'sanitize_callback' => 'wp_kses_post'
    )
);

$wp_customize->add_control (
    new WP_Customize_Control (
        $wp_customize,
        'script-code',
        array (
            'label' => esc_html__( 'Script Code', 'x' ),
            'section' => 'script',
            'settings' => 'script-code',
            'type' => 'textarea',
            'priority' => 1
        )
    )
);

Photo de Customizer:

 enter image description here 

à partir des codes de sortie:

<?php echo wp_kses_post(get_theme_mod('script-code')); ?>

de la sortie, retourne le vide:

<main class="script-code">
</main>

Comment utiliser une balise de script dans le champ de paramétrage Customizer textarea?

Merci beaucoup.

2
Rang

En effet, vous utilisez wp_kses_post pour nettoyer les données de sortie, essayez sans elles:

<?php echo get_theme_mod( 'script-code'); ?>

supprimez-le également d'ici:

$wp_customize->add_setting (
    'script-code',
    array (
        'default' => esc_html__( 'Script Code', 'x' ),
        'sanitize_callback' => '' // remove wp_kses_post
    )
); 

assurez-vous également que vous utilisez le bon nom de votre thème Mod. Vous pouvez le vérifier de deux manières:

1.- faire un var_dump(get_theme_mods()); vérifier il comment est nommé.

2.- Inspectez le code HTML de votre contrôle dans le personnaliseur

 enter image description here 

la id sans le préfixe customize-control- est le nom de votre thème mod.

0
David Lee