0

私は奇妙な問題に遭遇しています。以下のコードは、WP jQuery ライブラリと独自の JS ファイルの両方を読み込みます。パスをクリックすると、ファイルが読み込まれます。それらは両方ともページの下部 (上記) にロードされており、jQuery ライブラリは私のファイルの前にあります。

jQuery UI から Date Picker を使用していますが、読み込まれません。jQueryはトップである必要がありますか? もしそうなら、どうすればそれを頭に入れることができますか?$in_footer をオーバーライドしようとしましたが、うまくいきませんでした。

プラグインを作成するのは初めてなので、何かが完全に欠けていますか?

どんな助けでも大歓迎です。

<?php
 add_action('admin_init', 'ps_events_admin_init');
 add_action('admin_menu', 'ps_events_admin_menu'); 

 function ps_events_admin_init(){
    wp_register_script('ps-events-script', plugins_url('/js/psevents.js', __FILE__)); 
    wp_enqueue_script('jquery-ui-datepicker');
    wp_enqueue_script('ps-events-script');  
 }

 function ps_events_admin(){        
    include('psevents-admin_view.php');
 } 

 function ps_events_admin_menu(){  
     add_menu_page("PS Events", "PS Events", 1, "PS Events", "ps_events_admin");  
 }
 ?>

HTML出力

 <script type='text/javascript' src='http://localhost:8888/mysite/wp-admin/load-scripts.php?c=1&amp;load%5B%5D=admin-bar,hoverIntent,common,jquery-ui-core,jquery-ui-datepicker,jquery-ui-widget,jquery-ui-position,wp-pointer&amp;ver=3.5.1'></script>
 <script type='text/javascript' src='http://localhost:8888/mysite/wp-content/plugins/psevents/js/psevents.js?ver=3.5.1'></script>
 </body>
4

2 に答える 2

1

javascriptファイルの前にjQueryをロードする必要があります

 function ps_events_admin_init(){
    wp_register_script('ps-events-script', plugins_url('/js/psevents.js', __FILE__)); 
    wp_enqueue_script('jquery');
    wp_enqueue_script('jquery-ui-datepicker');
    wp_enqueue_script('ps-events-script');  
 }

注:WordPressにバンドルされているjQueryを使用しているため、jQueryはnoConflictモードで読み込まれます。の代わりjQueryに使用し$ます。

または、次の方法を使用してください。

jQuery(document).ready(function($){
//use $ here
});
于 2013-02-07T06:49:49.967 に答える
-1

使用することをお勧めします:

<?php
add_action('wp_head','ps_events_admin_menu');
add_action('wp_head','ps_events_admin_init');
wp_enqueue_script('jquery');
?>

また、独自の JavaScript がある場合は、次のような関数として埋め込むことができます。

<?php
add_action('wp_head','mysample');
wp_enqueue_script('jquery');
function mysample()
{
echo '<script language="JavaScript"> and JavaScript code';
}
?>
于 2013-02-07T06:35:17.610 に答える