web-dev-qa-db-ja.com

WordPressの管理セッションで、プラグイン用に作成されたサブメニューページにリンクする方法を教えてください。

だから私はWordPressのプラグインを作成しようとしていると私はこの提供された機能を使用していくつかのメニューページを作成しました:

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

ブラウザのアドレスバーに表示されるページに移動すると、次のように表示されます。

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

私がやりたいことはこのページをリンクできるようにすることですが、私はそれを行うより良い方法がないためにリンクをハードコーディングしなければならないことに気付き、私は開発サイトに取り組んでいます。だから私は私がこのプラグインコードをプロダクションサーバーにコピーするときそれがうまくいくように私がどのように私が私のブラウザ上で見たリンクを動的に生成することができるか疑問に思いました。つまり、サブメニューページcreateのリンク部分を生成するWordPress関数があります。

page=edit_record_page

また、リンクにクエリ文字列を追加する場合は、手動で追加するのと同じくらい簡単です。

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

またはそれを行うための適切なWordPressの機能もありますか?

10
racl101

admin_url() は正しい管理ページURLを取得します(そして network_admin_url() はネットワーク管理ページURLを取得します)

オプションで、連想配列を使用して、URLに引数を追加するために add_query_arg() を使用できます。

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

そして

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

3
matt