J'essaie d'ajouter du javascript à mon personnalisateur de thème. Mon fichier JS est chargé sans problème et mon événement document ready fonctionne mais wp.customize.bind()
n'appelle pas mon rappel.
jQuery(document).on('ready', function(){
console.log('binding')
wp.customize.bind('ready', function(){
console.log('ready')
})
})
binding
est envoyé à la console, mais pas ready
.
Qu'est-ce que je rate? il semble y avoir peu ou pas de documentation sur l’utilisation du javascript ici.
Ne placez pas le gestionnaire d'événements Customizer ready
dans le gestionnaire jQuery event
. Le personnalisateur ready
se déclenchera à jQuery ready
, de sorte que vous ajoutez le gestionnaire d'événements trop tard. Il suffit de faire:
wp.customize.bind('ready', function(){
console.log('ready');
});
Votre JS doit être mis en file d'attente avec le script customize-controls
en tant que dépendance. En file d'attente à l'action customize_controls_enqueue_scripts
.
J'ai eu le même problème. La raison pour laquelle il n'était pas contraignant pour moi était parce que j'avais l'erreur "Uncaught TypeError: Cannot read property 'unsync' of undefined"
sur ma console.
Cela est dû au fait que j'ai supprimé les paramètres header_textcolor
du modèle de thème à l'aide de $wp_customize->remove_setting( 'header_textcolor' );
, mais il était toujours référencé dans le fichier js.
Après avoir corrigé cela, bind a fonctionné comme prévu.