Ist es möglich, Variablen von add_user_page zu übergeben?

Wenn Sie sich in Admin-Menü so gehängt haben:

function adminmenu_users_reserves(){ add_users_page('Reserver', 'Reserver', 'read', 'reserve_list', 'show_userlist'); } add_action( 'admin_menu', 'adminmenu_users_reserves' ); 

und habe eine function

 function show_userlist(show_reserves = true, $title) { code... } 

Kann ich irgendwie die Variablen $show_reserves FROM add_users_page() ? (In einem Fall brauche ich $show_reserves um wahr zu sein, in anderen Fällen brauche ich es falsch)

Oder müsste ich mein Problem mit zwei verschiedenen functionen lösen? (für fast die gleiche functionalität)

 function adminmenu_users_reserves(){ add_users_page('Reserves', 'Reserves', 'read', 'reserve_list', 'show_reservelist'); } add_action( 'admin_menu', 'adminmenu_users_reserves' ); function adminmenu_users_registered(){ add_users_page('Registered', 'Registered', 'read', 'registered_list', 'show_registeredlist'); } add_action( 'admin_menu', 'adminmenu_users_registered' ); 

UPDATE Weil ich eine so gute Antwort von toscho ( https://wordpress.stackexchange.com/users/73/toscho ) habe, möchte ich meine Lösung teilen – wenn jemand anderes das gleiche Problem in der Zukunft hat:

 class userList { public $show_reserves = false; public $title = 'Reserver'; //Show a list of all reserves/or registered users in the system ordered by register-date function render() { $reserves = $this->show_reserves; $title = $this->title; echo $title; if ($reserves === true) { ....code... } } } function adminmenu_users_reserves(){ $userlist = new userList(); add_users_page('Reserver', 'Reserver', 'read', 'reserve_list', array( $userlist, 'render' )); } add_action( 'admin_menu', 'adminmenu_users_reserves' ); function adminmenu_users_registered(){ $userlist = new userList(); $userlist->show_reserves = false; $userlist->title = 'Anmälda'; add_users_page('Anmälda', 'Anmälda', 'read', 'registered_list', array( $userlist, 'render' )); } add_action( 'admin_menu', 'adminmenu_users_registered' ); 

Solutions Collecting From Web of "Ist es möglich, Variablen von add_user_page zu übergeben?"

Der einfachste und sauberste Weg, um dieses Problem zu lösen, ist die Verwendung eines spezialisierten Objekts.

Erstellen Sie zuerst eine class, die zusätzliche Informationen enthalten kann:

 class Menu_Page { public $extra = ''; public function render() { print $this->extra; } } 

Erstelle nun ein Objekt aus dieser class …

 $page = new Menu_Page; $page->extra = 'Hello World!'; 

… und registriere seine Methode render() als Callback:

 add_users_page( 'Test', 'Test', 'manage_options', 'test', array( $page, 'render' ) );