Dans la section Admin WordPress, comment puis-je créer un lien vers des pages de sous-menu créées pour un plugin?

10

J'essaie donc de créer un plugin WordPress et j'ai créé quelques pages de menu en utilisant cette fonction fournie:

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

et quand je vais à la page que je remarque sur la barre d'adresse du navigateur, il lit quelque chose comme ceci:

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

Ce que je veux faire est de pouvoir lier cette page mais je trouve que je dois coder en dur le lien faute de meilleure façon de le faire et je travaille sur un site de développement. Je me demandais donc comment générer dynamiquement le lien que j'ai vu sur mon navigateur afin que lorsque je copie ce code de plugin sur le serveur de production, cela fonctionnera. À savoir, existe-t-il une fonction WordPress qui générera la partie lien de la page de sous-menu créer.

page=edit_record_page

De plus, si je veux ajouter des chaînes de requête au lien, est-ce aussi simple que de l'ajouter manuellement comme ceci:

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

ou existe-t-il une fonction WordPress appropriée pour le faire aussi?

racl101
la source

Réponses:

16

admin_url()vous obtient l'URL de la page d'administration correcte (et network_admin_url()pour obtenir l'URL de la page d'administration du réseau)

Facultativement, vous pouvez utiliser add_query_arg()pour ajouter des arguments à une URL, à l'aide d'un tableau associatif:

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

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

et

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

mat
la source
Cela fonctionne, mais pouvez-vous montrer un exemple d'utilisation de admin_url (); en ligne comme ça?
Ben Racicot