Создание страницы администрирования WordPress без меню для плагина

Я пишу плагин, который будет перечислять несколько записей из пользовательского набора таблиц. Я добавил основную страницу для плагина, используя следующие функции WordPress:

// Add menu and pages to WordPress admin area add_action('admin_menu', 'myplugin_create_top_level_menu'); function myplugin_create_top_level_menu() { add_menu_page('MyPlugin', 'MyPlugin', 'manage_options', 'myplugin-top-level-admin-menu'); add_submenu_page('myplugin-top-level-admin-menu', 'MyPlugin Admin Page', 'Admin Page', 'manage_options', 'myplugin-top-level-admin-menu', 'myplugin_admin_page'); } function myplugin_admin_page { // Code to display the admin page for my plugin (both php and html code) // This includes the following seudo code (in php) foreach ($results_from_db as $result) { // CODE TO DISPLAY RESULTS IN AN HTML TABLE *** I NEED HELP HERE *** } } 

Теперь, если вы внимательно прочитаете приведенный выше код, вы заметите, что есть комментарий, в котором говорится: «Мне НУЖНА ПОМОЩЬ ЗДЕСЬ» ; здесь более подробная информация:

Я знаю, как отображать все на странице администратора, которую я создал. Страница администрирования будет считываться из пользовательских таблиц и отображать результаты в виде строк таблицы HTML.

Мне нужно только привязать каждую строку к странице, и назовите ее «Страница сведений о записи» . Идея заключается в том, что для каждой строки в таблице HTML будет ссылка, и когда я нажму на эту ссылку, она переведет меня на другую страницу, которая отобразит более подробную информацию об этой строке.

Я думал об использовании add_submenu_page, как описано здесь , но, честно говоря, я не понимал, как его использовать и как включить его в свой код. Я пробовал что-то вроде этого, но я думаю, что это неправильно:

 function myplugin_admin_page { // Code to display the admin page for my plugin (both php and html code) // This includes the following seudo code (in php) foreach ($results_from_db as $result) { // CODE TO DISPLAY RESULTS IN AN HTML TABLE *** I NEED HELP HERE *** // The following line of code is incorrect, but to show you the idea echo '<a href="' . add_submenu_page(NULL,'Entry Details Page','Entry Details Page','manage_options','details-page', 'myplugin_details_page'); . '">View</a>'; } } myplugin_details_page () { // Code to display the details page } 

Теперь я столкнулся с двумя проблемами:

  1. Как правильно добавить страницу сведений (ясно, что то, что я делаю выше во втором фрагменте кода, неверно)?
  2. Как включить параметры на странице сведений (мне нужно передать идентификатор строки для просмотра деталей)?

Я думаю, что я действительно близок к решению проблемы, однако я не смог найти достаточную документацию для ее завершения, поэтому, пожалуйста, помогите, и я действительно благодарю вас.

Приветствия.

Solutions Collecting From Web of "Создание страницы администрирования WordPress без меню для плагина"

Я менее убежден, что знаю, что вы делаете, чем когда-то.

 // Add menu and pages to WordPress admin area add_action('admin_menu', 'myplugin_create_top_level_menu'); function myplugin_create_top_level_menu() { // This is the menu on the side add_menu_page( 'MyPlugin', 'MyPlugin', 'manage_options', 'myplugin-top-level-page' ); // This is the first page that is displayed when the menu is clicked add_submenu_page( 'myplugin-top-level-page', 'MyPlugin Top Level Page', 'MyPlugin Top Level Page', 'manage_options', 'myplugin-top-level-page', 'myplugin_top_level_page_callback' ); // This is the hidden page add_submenu_page( null, 'MyPlugin Details Page', 'MyPlugin Details Page', 'manage_options', 'myplugin-details-page', 'myplugin_details_page_callback' ); } myplugin_top_level_page_callback() { global $wpdb; $results_from_db = $wpdb->get_results("SELECT * FROM myplugin_custom_table"); foreach ($results_from_db as $result) { $id = $result->id; $link = add_query_arg( array( 'page' => 'myplugin-details-page', // as defined in the hidden page 'id' => $id ), admin_url('admin.php') ); echo '<ul>'; echo '<li><a href="'.$link.'">'.$id.'</a><li>'; echo '</ul>'; } } function myplugin_details_page_callback () { // This function is to display the hidden page (html and php) } 

Вы используете две дополнительные функции Core, поэтому для справки: