web-dev-qa-db-ja.com

Customize.phpにカスタムスクリプトを追加する方法

3.4 Theme Customizerにスクリプトを追加する(つまり、customize.php)というのは、かなり困難です。必要に応じて、jqueryの登録を解除してgoogleapiから追加することができます。

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' );

それはうまくいきます。しかし、jquery-colorやその他のスクリプトを追加したいのであれば、うまく動作させることはできません。例えば、これはうまくいきません。

wp_enqueue_script( 'jquery-color' );

これもうまくいきません。

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

wp_enqueue_script( 'bpjquerycolor' );

Add_actionに関しては、以下のいずれも機能しません。

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' );

私はまた、成功せずに以下のことを試みました:

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

要するに、私は私が成功することなく私が考えることができるあらゆる組み合わせを試みました。

何がおかしいのですか?これをテーマカスタマイザに追加する方法を教えてください。

あなたが提供できるあらゆる助けを前もってありがとう。

1
user15927

'customize_controls_enqueue_scripts'も機能し、意図した機能である可能性があります。

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

さて、私はそれを考え出しました。 "init"や "wp_enqueue_scripts"などの代わりに、 "customize_controls_print_footer_scripts"を使わなければなりませんでした。

add_action( 'customize_controls_print_footer_scripts', 'bp_admin_scripts' );

スクリプトをヘッダーに入れたい場合は、 "customize_controls_print_scripts"を使用します。

そしてスタイルをエンキューしたい場合は "customize_controls_print_styles"を使用してください。

Customize.phpのコードを見て、そこで使用されているadd_actionコードの30行目から32行目に注目して(バージョン3.4.1以降)、これを見つけました。

4
user15927