Почему не печатаются сценарии администратора


Я пытаюсь поставить в очередь/распечатать сценарии в административной области. Но они, похоже, не появляются.

add_action('admin_init', function() {
    add_meta_box('portfolio-meta', 'Details', 'portfolio_metabox_details', 'portfolio');

    wp_register_script('jqeury-validate', 'http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8.1/jquery.validate.min.js');
    wp_enqueue_script('jquery-validate');
    wp_register_script('ae-admin', get_bloginfo('template_directory') . '/js/admin.js', array('jquery', 'jquery-validate'));
    wp_enqueue_script('ae-admin');
    wp_localize_script('ae-admin', 'WpAjax', array(
            'AjaxUrl' => admin_url('admin-ajax.php')
    ));
    wp_register_style('ae-validate', get_bloginfo('template_directory') . '/css/validate.css');
    wp_enqueue_style('ae-validate');
});

Но мой сценарий (admin.js), похоже, не печатается. Я даже пытался поместить их в "init" вместо "admin_init", но все равно не вижу своих сценариев... это почему? Как я могу выполнить отладку?

Author: Chris_O, 2011-06-20

4 answers

Используйте крючок admin_enqueue_scripts вместо admin_init

Примечание: вы должны использовать крючки, которые нацелены на страницы администратора как можно более конкретно. например:

  • Плагины : Используйте крючок admin_print_scripts-{plugin-page}
  • Темы : Используйте крючок admin_print_scripts-{theme-page} (где {theme-page} - это любая строка, которую вы используете в вызове add_theme_page())
  • Пользовательская страница редактирования типа записи : Используйте крючок admin_print_scripts-edit.php,

Для пользовательских типов записей внутри вашей функции сделайте что-то вроде следующее:

global $typenow;
if( 'portfolio' == $typenow ) {
    // wp_enqueue_script() calls go here
}

(ч/тт31ос)

 8
Author: Chris_O, 2017-04-13 12:37:38

Я только что заметил, что ваш add_action() звонок неверен. Вы должны передать ему обратный вызов, а не определение функции .

У вас есть:

add_action('admin_init', function() {
    // function definition here
});

Вместо этого у вас должно быть:

function mytheme_enqueue_admin_scripts() {
     // register/enqueue code goes here
}
add_action( 'hook_name', 'mytheme_enqueue_admin_scripts' );
 2
Author: Chip Bennett, 2011-06-21 12:12:01

Убедитесь, что ваш header.php (или другая функция в заголовке) запускает крючок действия wp_head. Код должен выглядеть следующим образом:

<?php wp_head() ?>
 1
Author: Dennis Hoppe, 2011-06-20 10:21:19

На самом деле у меня только что была опечатка

wp_register_script('jqeury-validate', 'http://ajax.aspnetcdn.com/ajax/jquery.validate
                      ^

Но спасибо @Chris_o и @Chip Беннетту за их замечательные ответы

 1
Author: JM at Work, 2011-06-30 07:02:07