En la sección Administrador de WordPress, ¿cómo puedo vincularme a páginas de submenú creadas para un complemento?


10

Así que estoy tratando de crear un complemento de WordPress y he creado algunas páginas de menú usando esta función proporcionada:

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

y cuando voy a la página me doy cuenta de que en la barra de direcciones del navegador dice algo como esto:

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

Lo que quiero hacer es poder vincular esta página, pero encuentro que tengo que codificar el enlace por falta de una mejor manera de hacerlo y estoy trabajando en un sitio de desarrollo. Entonces, me preguntaba cómo podría generar dinámicamente el enlace que vi en mi navegador para que cuando copie este código de complemento en el servidor de producción funcione. A saber, ¿hay una función de WordPress que generará la parte del enlace de la página de submenú crear?

page=edit_record_page

Además, si deseo agregar cadenas de consulta al enlace, es tan simple como agregarlo manualmente de la siguiente manera:

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

¿O hay una función adecuada de WordPress para hacer eso también?

Respuestas:


16

admin_url()le proporciona la URL correcta de la página de administración (y network_admin_url()para obtener una URL de la página de administración de red)

Opcionalmente, puede usar add_query_arg()para agregar argumentos a una URL, usando una matriz asociativa:

$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>

y

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


Esto funciona, sin embargo, ¿puede mostrar un ejemplo de uso de admin_url (); en línea como este?
Ben Racicot
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.