Добавление jQuery script в wordpress Admin

Я почему-то не могу заставить страницы wordpress/wp-admin выполнять простой файл запроса. Он работает только в том случае, если я отменил регистрацию jquery в моих functions.php в моей папке с темами, но тогда я должен перерегистрировать все файлы jquery.ui отдельно, что является утомительным. Im с использованием многозадачной установки wordpress 3.0. Я пытаюсь не касаться основных файлов wp.

Он будет отображаться в источнике и ссылаться на файл в порядке, но не будет выполнять script. heres, что у меня есть в моих функциях .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"); });

любая помощь будет большой.

Ответы

Ответ 1

Помните, что jQuery, включенный в Wordpress, работает в режиме NoConflict, насколько я знаю, что означает $, но вместо этого jQuery. Вероятно, поэтому вы отменили встроенный jQuery и использовали его в Google CDN. Вероятно, этот режим не работает в этом режиме.

У меня нет опыта работы с wordpress, поэтому я могу сделать ошибку здесь. Просто убедитесь, что встроенный jQuery доступен и загрузите script.

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"); 
});

Посмотрите, работает ли это для вас. Если вам нравится использовать $, вы, вероятно, можете написать var $ = jQuery; в верхней части вашего admin_script.js.

Ответ 2

Вы можете сделать это следующим образом:

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

Подробнее см. документацию здесь