WordPress将脚本放入管理子页面


WordPress enqueue scripts on admin subpage

我正在尝试将css和js文件放入特定管理页面的队列中。目标页面是wp-admin/users.php?page=bp配置文件编辑。为此,我正在尝试:

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,而不适用于目标页面。

您可以使用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' );

users.php?page=bp-profile-edit不是正确的挂钩后缀。钩子后缀是请求字符串中经过净化的字符串。因此,正确的$hook应该是users_page_bp-profile-edit。你可以在这里找到更多关于$hook_suffix的信息。

这应该有效:

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()中的必需参数。