Wie verlinke ich im WordPress Admin-Bereich auf Untermenüseiten, die für ein Plugin erstellt wurden?


10

Ich versuche also, ein WordPress-Plugin zu erstellen, und habe mit dieser Funktion einige Menüseiten erstellt:

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

und wenn ich zu der Seite gehe, die ich in der Adressleiste des Browsers bemerke, lautet sie ungefähr so:

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

Was ich tun möchte, ist, in der Lage zu sein, diese Seite zu verlinken, aber ich finde, ich muss den Link fest codieren, weil es keine bessere Möglichkeit gibt, und ich arbeite an einer Entwicklungsseite. Ich habe mich gefragt, wie ich den Link, den ich in meinem Browser gesehen habe, dynamisch generieren kann, damit er funktioniert, wenn ich diesen Plugin-Code auf den Produktionsserver kopiere. Gibt es nämlich eine WordPress-Funktion, die den Link-Teil der erstellten Untermenüseite generiert?

page=edit_record_page

Wenn ich Abfragezeichenfolgen an den Link anhängen möchte, ist dies so einfach wie das manuelle Hinzufügen:

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

oder gibt es dafür auch eine passende WordPress-Funktion?

Antworten:


16

admin_url()Sie erhalten die richtige URL für die Verwaltungsseite (und network_admin_url()eine URL für die Netzwerkverwaltungsseite).

Optional können Sie add_query_arg()Argumente mithilfe eines assoziativen Arrays an eine URL anhängen:

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

und

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


Dies funktioniert. Können Sie jedoch ein Beispiel für die Verwendung von admin_url () zeigen? Inline so?
Ben Racicot
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.