WordPress在admin子页面上排队脚本

时间:2016-05-09 14:36:06

标签: php wordpress

我正在尝试将css和js文件排入特定管理页面。 目标页面是wp-admin / users.php?page = bp-profile-edit。为此,我正在尝试:

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

2 个答案:

答案 0 :(得分: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' );

答案 1 :(得分:0)

users.php?page=bp-profile-edit不是正确的挂钩后缀。钩子后缀是一个已清理的请求字符串字符串。因此,正确的$hook应为users_page_bp-profile-edit。您可以找到有关$hook_suffix here

的更多信息

这应该有效:

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