web-dev-qa-db-ja.com

3.5のJavascriptを正しくエンキューする

私はWPで管理者設定ページのタブを作成しようとしていますが、私はそれが間違っていると思います。以下の例は私がどのようにしたかを示していますが、これを正しく使用するためにこれを変更する方法がわかりません。 $。

function my_plugin_load_js() {
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://code.jquery.com/jquery-1.8.3.js');
wp_enqueue_script('jquery');

wp_deregister_script('jquery-ui-core');
wp_register_script('jquery-ui-core', 'http://code.jquery.com/ui/1.9.2/jquery-ui.js');
wp_enqueue_script('jquery-ui-core');
}
add_action('admin_enqueue_scripts', 'my_plugin_load_js' );

function mypluginjs() {
echo '<script type="text/javascript">
jQuery(function() {
   jQuery( "#tabs" ).tabs();
});
</script>';
}
add_action( 'admin_print_scripts', 'mypluginjs' );
1
Jes

WP-Adminでコアバンドルスクリプトを登録解除しないでください。あなたがフロントエンドでもそうすべきではありません、あなたが本当に、本当にあなたが何を知っているのでなければ。やります。しかしWP-Adminでは特に、コアバンドルのスクリプトを使うだけです。

また、コアバンドルのjQuery UIを使用するとき、WordPressはすでにjQueryが依存関係であることを知っています。

最初のコールバックをこれに変更するだけです。

function my_plugin_load_js() {
    wp_enqueue_script('jquery-ui-core');
}
add_action('admin_enqueue_scripts', 'my_plugin_load_js' );

注:WP-Admin全体をエンキューするのではなく、自分のプラグインの管理ページにのみエンキューするには、ここでplugin-specificフックを使用する必要があります。

また、jQuery UIタブの場合は、jquery-ui-tabsスクリプトをエンキューする必要があります。 Coreはそれを必要なすべてのdepsに登録するので、直接それをエンキューすることができます。

function my_plugin_load_js() {
    wp_enqueue_script('jquery-ui-tabs');
}
add_action('admin_enqueue_scripts', 'my_plugin_load_js' );

2つ目は、スクリプト を競合のないラッパー で正しくラップするだけです。

function mypluginjs() {
    ?>
<script type="text/javascript">
jQuery(document).ready(function($) {
   jQuery( "#tabs" ).tabs();
});
</script>
    <?php
}
add_action( 'admin_print_scripts', 'mypluginjs' );
7
Chip Bennett