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éé 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 lorsque je vais à la page, je remarque que dans la barre d'adresse du navigateur, il se lit comme suit:

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 dois 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 sur 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 création de sous-menu?

page=edit_record_page

En outre, si je souhaite ajouter des chaînes de requête au lien, il suffit de l’ajouter manuellement, comme suit:

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?

    
posée racl101 22.12.2010 - 20:28

2 réponses

16

admin_url() vous permet d'obtenir l'URL correcte de la page d'administration (et network_admin_url() pour obtenir l'URL d'une 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'));
    
réponse donnée onetrickpony 22.12.2010 - 20:43
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>

    
réponse donnée matt 22.12.2010 - 20:44

Lire d'autres questions sur les étiquettes