如果您的代码被包装在一个类中,那么使用一个类变量来存储插件的页面挂钩,这将便于参考,并且基本上可以做Rarst正在做的事情,但不需要全局语句。。。
class WPSE_Example_Code {
private $hook;
function __construct() {
add_action( \'admin_menu\', array( $this, \'on_admin_menu\' ) );
}
function on_admin_menu() {
$this->hook = add_options_page( .. your params .. );
add_action( \'admin_enqueue_scripts\', array( $this, \'on_admin_enqueue_scripts\' ) );
// OR (you\'d not need the conditional statement in the function below if using this method)
// add_action( \'admin_print_scripts-\' . $this->hook , array( $this, \'on_admin_enqueue_scripts\' ) );
}
function on_admin_enqueue_scripts( $hook_suffix ) {
if( $this->hook != $hook_suffix )
return;
wp_enqueue_script( \'your-script-handle\', plugins_url( \'/yourfilename.js\', __FILE__ ), array( \'jquery\' ), \'1.0\', true );
}
}
从技术上来说
admin_print_scripts-$hook
或
admin_enqueue_scripts
两者都适合你的使用,你使用哪一种确实是一个偏好的问题。我倾向于使用
admin_print_scripts-$hook
我自己(因为我通常只需要一个页面的脚本,所以根据我的示例,它避免了在回调中编写条件逻辑的需要)。