it-roy-ru.com

Как добавить файл JavaScript ко всем страницам администратора с помощью плагина

Контекст: для зарегистрированных пользователей я добавляю строку запроса к URL, чтобы она обошла кэш Cloudflare. Например, example.com становится example.com/?nocache=y.

Я сделал это довольно легко с помощью следующего кода:

function tbcloudflare_query_arg() {   
if(is_user_logged_in()){
        wp_enqueue_script( 'tbcloudflare_check_query', plugin_dir_url( __FILE__ ) . 'js/tbcloudflare.js', array('jquery'), '1.0' );
     }
 }
 add_action('wp_enqueue_scripts', 'tbcloudflare_query_arg');

Я могу видеть файл в исходном коде, и он прекрасно работает на страницах внешнего интерфейса, но, конечно, не на конце. Итак, я попробовал:

function tbcloudflare_admin_query_arg($hook){
    wp_enqueue_script( 'tbcloudflare_check_query', plugin_dir_url( __FILE__ ) . 'js/tbcloudflare.js', array('jquery'), '1.0' );
}
add_action('admin_enqueue_scripts', 'tbcloudflare_admin_query_arg' );

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

Это должно быть загружено из плагина, а не из файла functions.php. Что я могу делать не так? Код не отображается в источнике html и не показывает, что он загружен через источник проверки Chrome.

2
user658182

Справочник разработчика плагинов рекомендует использовать plugins_url() для создания URL-адреса файла JS. Попробуйте использовать эту функцию внутри загрузчика скриптов и использовать другой дескриптор скрипта в зависимости от контекста (например, добавление префикса имени администратора к "admin-"), чтобы избежать конфликтной регистрации скрипта.

В качестве альтернативы, вы можете зарегистрировать скрипт только один раз и поставить его в очередь, когда это необходимо, на перехватчики очереди.

1
Morgan Estes