web-dev-qa-db-fra.com

Comment ajouter un script personnalisé à Customize.php

J'ai de la difficulté à ajouter un script au thème Customizer 3.4 (c'est-à-dire, personnaliser.php). Si je le souhaite, je peux annuler l’enregistrement de jquery et l’ajouter à googleapi comme suit:

wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js');
wp_enqueue_script( 'jquery' );

Cela fonctionne très bien. Cependant, si je veux ajouter jquery-color ou un autre script, je ne peux tout simplement pas le faire fonctionner. Par exemple, cela ne fonctionne pas:

wp_enqueue_script( 'jquery-color' );

Cela ne fonctionne pas non plus:

wp_register_script( 'bpjquerycolor', 'http://localhost/bp2/wp-content/themes/buildpress/admin/scripts/bpjquerycolor.js');

wp_enqueue_script( 'bpjquerycolor' );

En termes d’add_action, aucun des travaux suivants ne fonctionne:

add_action( 'admin_print_scripts', 'add_admin_scripts' );
add_action( 'wp_enqueue_scripts', 'add_admin_scripts' );
add_action( 'init', 'add_admin_scripts' );
add_action( 'admin_init', 'add_admin_scripts' );

J'ai aussi essayé ce qui suit sans succès:

global $wp_customize;
if ( isset( $wp_customize ) ) {
wp_enqueue_script( 'jquery-color' );
}

En bref, j'ai essayé toutes les combinaisons auxquelles je peux penser sans succès.

Qu'est-ce que je fais mal? Comment puis-je ajouter ceci au personnalisateur de thème?

Merci d'avance pour toute aide que vous pouvez offrir.

1
user15927

Il semble que 'personnaliser_controls_enqueue_scripts' fonctionne également et peut être la fonction voulue.

function theme_customize_style() {
    wp_enqueue_style('customize-styles', get_template_directory_uri() . '/customize.css');
}
add_action( 'customize_controls_enqueue_scripts', 'theme_customize_style' );
6
natejacobson

Ok, je l'ai compris. Au lieu de "init" ou "wp_enqueue_scripts", etc., j'ai dû utiliser "personnaliser_controls_print_footer_scripts" en tant que tel:

add_action( 'customize_controls_print_footer_scripts', 'bp_admin_scripts' );

Si vous voulez le script dans l'en-tête, utilisez: "personnaliser_controls_impression_scripts"

Et si vous souhaitez mettre en file d'attente un style, utilisez "custom_controls_print_styles".

J'ai découvert cela en consultant le code de personnaliser.php et en notant les codes add_action utilisés aux lignes 30 à 32 (à partir de la version 3.4.1).

4
user15927