我有一个自定义的WordPress插件,它向我展示了数据库中的数据列表。我正在通过以下方式注册它的页面:
add_menu_page(
'Naročila',
'Vsa naročila',
'administrator',
'listaj-narocila',
array( &$this, 'listaj_narocila' )
);
然后当然,我有函数lista_narocila
向我显示我的数据。
所以,目前我的网址是:
http://domain.com/wp-admin/admin.php?page=listaj-narocila
我在表格中显示数据库中的数据。现在我为每条记录提供了删除和编辑按钮,但我很难弄清楚,如何在 WordPress 中注册自定义"url"或"自定义页面",这将允许我拥有 URL:
http://domain.com/wp-admin/admin.php?page=single-narocilo?id=X
我知道我可以尝试使用add_menu_page但我不希望此页面出现在管理菜单中。只是为了作为 URL 提供。目前我没有收到访问错误。
您可以创建一个子菜单页面并将null
作为其父级传递:
$parent_鼻涕虫
使用 NULL 或设置为"选项.php",如果要创建未显示在任何菜单中的页面。
演示:
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;
});
});
另一种方法:https://wordpress.stackexchange.com/a/114818/12615