【问题标题】:WordPress enqueue scripts on admin subpage管理子页面上的 WordPress 排队脚本
【发布时间】:2016-05-09 23:20:03
【问题描述】:

我正在尝试将 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,不适用于目标页面。

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      users.php?page=bp-profile-edit 不是正确的钩子后缀。 Hook 后缀是经过过滤的请求字符串。所以正确的$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() 中的必需参数。

      【讨论】:

      • 感谢您提供解决方案以及关于 FILE 参数的提示。您的解决方案和 kindisch 都有效。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多