I have a custom WordPress plugin that is showing me a list of data from database. I am registering it\'s page via:
add_menu_page(
\'Naročila\',
\'V
You can create a sub menu page and pass null as its parent:
$parent_slug
Use NULL or set to 'options.php' if you want to create a page that doesn't appear in any menu.
A demo:
add_action('admin_menu', function()
{
# Main page
add_menu_page(
'Vsa',
'Vsa',
'add_users', // Capability, not role
'listaj-narocila',
function(){
printf(
'<h2>%s</h2><a href="%s">%s</a>',
__( 'Main page' ),
admin_url( 'admin.php?page=single-norcilo&id='.rand(1,25) ),
__( 'Hidden sub page' )
);
},
'http://sstatic.net/stackexchange/img/favicon.ico'
);
# Child page
$hook = add_submenu_page(
null,
'Norcilo',
'Norcilo',
'add_users',
'single-norcilo',
function(){
printf(
'<h2>%s</h2><a href="%s">%s</a>',
__( 'Hidden sub page' ),
admin_url( 'admin.php?page=listaj-narocila' ),
__( 'back' )
);
}
);
# Enqueue script in submenu page to fix the current menu indicator
add_action( "admin_footer-$hook", function()
{
echo <<<HTML
<script type="text/javascript">
jQuery(document).ready( function($) {
$('#toplevel_page_listaj-narocila')
.removeClass('wp-not-current-submenu')
.addClass('current');
});
</script>
HTML;
});
});
An alternative approach: https://wordpress.stackexchange.com/a/114818/12615