Na seção Admin do WordPress, como faço para vincular a páginas de submenu criadas para um plug-in?


10

Então, eu estou tentando criar um plugin do WordPress e criei algumas páginas de menu usando esta função fornecida:

add_submenu_page('my_plugin_menu', 'Edit record page', 'Edit record page', 'manage_options', 'edit_record_page', array(&$this, 'display_edit_record_page');

e quando vou para a página, percebo na barra de endereços do navegador que aparece algo como isto:

http://mydomain.com/wp/wp-admin/admin.php?page=edit_record_page

O que eu quero fazer é poder vincular esta página, mas acho que tenho que codificar o link por falta de uma maneira melhor de fazê-lo e estou trabalhando em um site de desenvolvimento. Então, eu queria saber como eu poderia gerar dinamicamente o link que vi no meu navegador para que, quando eu copiar esse código do plugin no servidor de produção, ele funcione. Ou seja, existe uma função do WordPress que irá gerar a parte do link da página do submenu criada.

page=edit_record_page

Além disso, se eu quiser anexar as strings de consulta ao link, é tão simples quanto adicioná-lo manualmente da seguinte forma:

http://mydomain.com/wp/wp-admin/admin.php?page=edit_record_page&rec_id=1

ou existe uma função apropriada do WordPress para fazer isso também?

Respostas:


16

admin_url()fornece o URL correto da página de administração (e network_admin_url()para obter um URL da página de administração de rede)

Opcionalmente, você pode usar add_query_arg()para anexar argumentos a uma URL, usando uma matriz associativa:

$page       = 'edit_record_page';
$rec_id     = 1;
$record_url = add_query_arg(compact('page', 'rec_id'), admin_url('admin.php'));

3

<a href="admin.php?page=edit_record_page">Link Text</a>

e

<a href="admin.php?page=edit_record_page&rec_id=1">Link Text</a>


Isso funciona, no entanto, você pode mostrar um exemplo do uso de admin_url (); inline assim?
Ben Racicot
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.