Как я могу добавить свой скрипт в администрацию с помощью script-loader.php?


Я пытаюсь загрузить свой пользовательский скрипт в панель администратора, используя тот же метод, которым сам WordPress загружает скрипты в административную область.

Это пример сценария, загружаемого wp-includes/script-loader.php:

$scripts->add(
    'password-strength-meter',
    "/wp-admin/js/password-strength-meter$suffix.js",
    array( 'jquery', 'zxcvbn-async' ), 
    false, 
    1
);

Поэтому я попытался добавить свой собственный скрипт тем же методом. Я:

  • Создал файл с именем user-profile-validator.js внутри /wp-admin/js/ (также создал уменьшенную версию)
  • Попытался поставить его в очередь, используя следующий код:

$scripts->add(
    'user-profile-validator',
    "/wp-admin/js/user-profile-validator$suffix.js",
    array( 'jquery' ), 
    false, 
    1
);

Но ничего случилось так, что он не добавлен в URL, и я не могу найти свой скрипт среди загруженных скриптов.

Почему это происходит?

PS: Я делаю исправление, поэтому я изменяю основные файлы.

Author: Jack Johansson, 2017-07-19

1 answers

Я думаю, что вы только регистрируете его с помощью:

$scripts->add( 'user-profile-validator', ...)

Но не постановка в очередь .

Проверьте, например, как wp_register_script() является оболочкой для метода WP_Scripts::add().

Дополнительно добавить:

wp_enqueue_script( 'user-profile-validator' );

В соответствующем файле администратора, чтобы поставить его в очередь или добавить в качестве зависимости для другого сценария, поставленного в очередь.

Обратите внимание, что password-strength-meter является зависимостью для сценария user-profile:

$scripts->add( 
    'user-profile', 
    "/wp-admin/js/user-profile$suffix.js", 
    array( 'jquery', 'password-strength-meter', 'wp-util' ), 
   false, 
   1 
);

Это поставлено в очередь с:

wp_enqueue_script( 'user-profile' );

В серверная часть.

 2
Author: birgire, 2017-07-19 10:59:42