Nella sezione Admin di WordPress come posso collegarmi alle pagine dei sottomenu create per un plugin?


10

Quindi sto cercando di creare un plugin per WordPress e ho creato alcune pagine di menu usando questa funzione fornita:

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 vado alla pagina noto sulla barra degli indirizzi sul browser si legge qualcosa del genere:

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

Quello che voglio fare è essere in grado di collegare questa pagina, ma trovo che devo codificare il link per mancanza di un modo migliore per farlo e sto lavorando su un sito di sviluppo. Quindi mi chiedevo come avrei potuto generare dinamicamente il link che ho visto sul mio browser in modo che quando copio questo codice plugin sul server di produzione funzionerà. Vale a dire, c'è una funzione WordPress che genererà la parte di collegamento della pagina del sottomenu creare.

page=edit_record_page

Inoltre, se voglio aggiungere stringhe di query al link è semplice come aggiungerlo manualmente in questo modo:

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

o esiste una funzione WordPress appropriata anche per farlo?

Risposte:


16

admin_url()ottiene l'URL della pagina di amministrazione corretta (e network_admin_url()per ottenere un URL della pagina di amministrazione di rete)

Facoltativamente, è possibile utilizzare add_query_arg()per aggiungere argomenti a un URL, utilizzando un array associativo:

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


Funziona, tuttavia puoi mostrare un esempio dell'uso di admin_url (); inline come questo?
Ben Racicot,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.