Create folder name admin_menu path wp-content\plugins\admin_menu
Create php file name admin_menu path wp-content\plugins\admin_menu\admin_menu.php
admin_menu.php source code
<?php /** * Plugin Name: Admin Menu * Plugin URI: https://tutorial101.blogspot.com/ * Description: A custom admin menu. * Version: 1.0 * Author: Cairocoders * Author URI: http://tutorial101.blogspot.com/ **/ function theme_options_panel(){ add_menu_page('Theme page title', 'Theme menu', 'manage_options', 'theme-options', 'wps_theme_func'); add_submenu_page('theme-options', 'Settings page title', 'Settings menu label', 'manage_options', 'theme-op-settings', 'wps_theme_func_settings'); add_submenu_page('theme-options', 'FAQ page title', 'FAQ menu label', 'manage_options', 'theme-op-faq', 'wps_theme_func_faq'); add_submenu_page('theme-options', 'My List Table', 'My List Table', 'manage_options', 'my-list-table', 'wps_theme_list_table'); } add_action('admin_menu', 'theme_options_panel'); //function function wps_theme_func(){ echo '<div class="wrap"> <div id="icon-users" class="icon32"></div> <h2>Theme Options</h2> </div>'; } function wps_theme_func_settings(){ echo '<div class="wrap"><div id="icon-options-general" class="icon32"><br></div> <h2>Settings</h2></div>'; } function wps_theme_func_faq(){ echo '<div class="wrap"><div id="icon-options-general" class="icon32"><br></div> <h2>FAQ</h2></div>'; } function wps_theme_list_table(){ echo '<div class="wrap"> <div id="icon-users" class="icon32"></div> <h2>My List Table Test - Pagination</h2> </div>'; global $wpdb; echo '<form method="get" action="" id="posts-filter"> <table class="wp-list-table widefat fixed pages"> <tbody id="the-list"> <thead> <tr> <th class="manage-column column-cb check-column" id="cb" scope="col"></th> <th class="manage-column column-name" scope="col">User ID</th> <th class="manage-column column-name" scope="col">Invoice #</th> <th class="manage-column column-name" scope="col">Date Order</th> <th class="manage-column column-name" scope="col">Paid By</th> <th class="manage-column column-name" scope="col">Action</th> </tr> </thead> <tfoot> <tr> <th class="manage-column column-cb check-column" scope="col"></th> <th class="manage-column column-name" scope="col">User ID</th> <th class="manage-column column-name" scope="col">Invoice #</th> <th class="manage-column column-name" scope="col">Date Order</th> <th class="manage-column column-name" scope="col">Paid By</th> <th class="manage-column column-name" scope="col">Action</th> </tr> </tfoot>'; $pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1; $limit = 3; // number of rows in page $offset = ( $pagenum - 1 ) * $limit; $total = $wpdb->get_var( "SELECT COUNT('id') FROM wp_sdn_userorder" ); $num_of_pages = ceil( $total / $limit ); $sql_usersorder = $wpdb->get_results( "SELECT * FROM wp_sdn_userorder ORDER BY dateorder DESC LIMIT $offset, $limit"); $totalrec = $wpdb->num_rows; $isodd=array('','alternate'); $n=0; foreach ($sql_usersorder as $rows_usersorder) { $n++; $id = $rows_usersorder->id; $user_id = $rows_usersorder->user_id; $course_invoice = $rows_usersorder->course_invoice; $dateorder = $rows_usersorder->dateorder; $paidby = $rows_usersorder->paidby; echo '<tr class="type-page '.$isodd[$n%2].'"> <th class="check-column" scope="row"><center>'.$n.'</center></th> <td class="column-title"><strong><a title="Edit" href="#" class="row-title">'.$user_id.''.rand().'</a></strong> <div class="row-actions"> <span class="edit"><a title="Edit this item" href="#">Edit</a> | </span> <span class="trash"><a href="javascript:delusers('.$id.','.$user_id.')" title="Move this item to the Trash" class="submitdelete">Trash</a> | </span> </div> </td> <td>'.$course_invoice.'</td> <td>'.$dateorder.'</td> <td>'.$paidby.'</td> <td><a href="#">View</a> | <a href="#">Delete</a></td> </tr>'; } echo '</tbody> </table> <div class="tablenav bottom"> <div class="alignleft actions bulkactions">'; $page_links = paginate_links( array( 'base' => add_query_arg( 'pagenum', '%#%' ), 'format' => '', 'prev_text' => __( '«', 'text-domain' ), 'next_text' => __( '»', 'text-domain' ), 'total' => $num_of_pages, 'current' => $pagenum ) ); if ( $page_links ) { echo '<div class="tablenav"><div class="tablenav-pages" style="margin: 1em 0">' . $page_links . '</div></div>'; } echo '</div> <br class="clear"> </div> </form>'; }