2016-05-09 7 views
3

Я пытаюсь вставить файл css и js на определенной странице администратора. Целевая страница - wp-admin/users.php? Page = bp-profile-edit. Для этого я пытаюсь:WordPress enqueue scripts на странице администратора

function my_enqueue ($hook) { 
    if ('users.php?page=bp-profile-edit' == $hook) { 
     wp_enqueue_script('my_custom_script', plugin_dir_url() . 'myscript.js'); 
     wp_enqueue_style('my_custom_script', plugin_dir_url() . 'mystyle.css'); 
    } 
} 
add_action('admin_enqueue_scripts', 'my_enqueue'); 

Он работает только на users.php, а не на целевой странице.

ответ

0

Вы можете использовать get_query_var или просто использовать параметр $ _GET.

Итак:

function my_enqueue ($hook) { 
    if ('users.php' == $hook && isset($_GET['page']) && $_GET['page'] == 'bp-profile-edit') { 
     wp_enqueue_script('my_custom_script', plugin_dir_url() . 'myscript.js'); 
     wp_enqueue_style('my_custom_script', plugin_dir_url() . 'mystyle.css'); 
    } 
} 
add_action('admin_enqueue_scripts', 'my_enqueue'); 
+0

Большое вам спасибо. Оно работало завораживающе. – Adrian

0

users.php?page=bp-profile-edit не является правильным суффиксом крючок. Суффикс-крюк - это санированная строка строки запроса. Таким образом, правильный $hook должен быть users_page_bp-profile-edit. Вы можете узнать больше о $hook_suffixhere.

Это должно работать:

function my_enqueue($hook) { 
    if ('users_page_bp-profile-edit' === $hook) { 
     wp_enqueue_script('my_custom_script', plugin_dir_url(__FILE__) . 'myscript.js'); 
     wp_enqueue_style('my_custom_script', plugin_dir_url(__FILE__) . 'mystyle.css'); 
    } 
} 
add_action('admin_enqueue_scripts', 'my_enqueue'); 

Также __FILE__ является обязательным параметром в plugin_dir_url().

+0

Благодарим вас за решение и за подсказку по параметру __FILE__. И ваше решение, и kindisch работали. – Adrian

Смежные вопросы