web-dev-qa-db-ja.com

jQueryスクリプトをwordpress Adminに追加する

何らかの理由でwordpress/wp-adminページで単純なクエリファイルを実行できません。テーマフォルダー内のfunctions.phpでjqueryの登録を解除した場合にのみ機能しますが、面倒なjquery.uiファイルを個別に再登録します。wordpress 3.0マルチサイトインストールを使用しています。コアwpファイルには触れないようにしています。

ソースに表示され、ファイルへのリンクは問題ありませんが、スクリプトは実行されません。ここに私が私のfunctions.phpにあるものがあります:

function my_script() {
if (!is_admin()) {
    wp_deregister_script('jquery');
    wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js', false, '1.4.4');
    wp_enqueue_script('jquery');
    wp_enqueue_script('custom_script', get_bloginfo('template_url').'/js/myScript.js', array('jquery'));
}
if(is_admin()){
    wp_enqueue_script('custom_admin_script',  get_bloginfo('template_url').'/js/admin_script.js', array('jquery'));
}   }

add_action( 'init'、 'my_script');

これが私のjqueryファイル(admin_script.js)です:

$(document).ready(function(){
alert("Hello"); });

どんな助けでも素晴らしいでしょう。

18
drav

Wordpressで実行されるjQueryはNoConflictモードで動作します。つまり、$ではなくjQuery。おそらく、組み込みのjQueryの登録を解除し、Google CDNのjQueryを使用したのですが、そのモードではおそらく実行されません。

私はワードプレスの経験がないので、ここで間違えるかもしれません。組み込みのjQueryが使用可能であることを確認し、スクリプトをロードしてください。

function my_script() {
    if (!is_admin()) {
        wp_enqueue_script('custom_script', get_bloginfo('template_url').'/js/myScript.js', array('jquery'));
    }
    if(is_admin()){
        wp_enqueue_script('custom_admin_script', get_bloginfo('template_url').'/js/admin_script.js', array('jquery'));
    }   
}

Admin_script.jsを変更して、$ではなくjQueryを使用します。

jQuery(document).ready(function(){
    alert("Hello"); 
});

それがあなたのために働くかどうか見てください。 $を使用したい場合は、admin_script.jsの上部にvar $ = jQuery;と書くことができます。

29
Reiner Gerecke

あなたはこのようにすることができます

<?php add_action( 'admin_enqueue_scripts', 'function_name' ); ?>

これはこのように使用できます

<?php add_action( 'admin_enqueue_scripts', 'load_custom_script' ); ?>
function load_custom_script() {
    wp_enqueue_script('custom_js_script', get_bloginfo('template_url').'/js/custom-script.js', array('jquery'));
}

詳細については、ドキュメント こちら を参照してください

9
NewUser