web-dev-qa-db-fra.com

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

J'essaie donc de créer un plugin WordPress et j'ai créé des 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 se lit comme ceci:

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

Ce que je veux faire, c'est pouvoir relier cette page, mais je me dois de coder le lien en dur, faute d'une 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 dans mon navigateur afin que, lorsque je copie ce code de plug-in sur le serveur de production, il fonctionne. À 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

Aussi, 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?

10
racl101

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

Vous pouvez éventuellement 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'));
16
onetrickpony

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

3
matt