Intereting Posts

Как добавить скрипт в админ с помощью 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 ); 

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

  • Создал файл с именем 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: Я делаю патч, поэтому я изменяю основные файлы.

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

 $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' ); 

в бэкэнд.