Intereting Posts
Категории WordPress не работают на сайте переменные в переводе текста Получить идентификатор последнего сообщения Как улучшить отображение просмотров просмотров? get_field не отображает мое настраиваемое значение поля Как получить все сообщения автора в пользовательском списке типов сообщений Ошибка js на странице редактирования сообщений Отображение пользовательского типа сообщений на главной странице Изображение аватара не отображается при использовании get_avatar Быстрое редактирование: выбранная пользовательская таксономия не обновляется после сохранения Как установить различные настройки для мобильной темы? Ограничить поиск в настраиваемом поле прикреплять изображение из библиотеки к сообщению с помощью wp_insert_attachment Удаление категории из администратора WordPress полностью удаляет ее из базы данных? Автозапуск после установки WordPress

Можно ли передавать переменные из add_user_page?

Если они подключены к административному меню:

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

и имеют функцию

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

Могу ли я передавать переменные $show_reserves FROM add_users_page() как-то? (В одном случае мне нужно, чтобы значение $show_reserves было истинным, в другом случае мне нужно, чтобы оно было ложным)

Или мне придется решить мою проблему с помощью двух разных функций? (практически для тех же функций)

 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' ); 

ОБНОВЛЕНИЕ Поскольку у меня есть такой отличный ответ от toscho ( https://wordpress.stackexchange.com/users/73/toscho ), я хочу поделиться своим решением – если у кого-то еще будет такая же проблема в будущем:

 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' ); 

Самый простой и самый простой способ решить эту проблему – использовать специализированный объект.

Сначала создайте класс, который может содержать дополнительную информацию:

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

Теперь создайте объект из этого класса …

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

… и зарегистрировать метод render() как обратный вызов:

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