1

私はWordpressプラグインを構築しています.既存のユーザーエンティティに似た「ベンダー」エンティティの管理に役立つメニューページを追加しました.

ユーザーリストに似たリストページがあり、すべてのレコードに[編集]ボタンがあり、[編集]ボタンをクリックすると、[ベンダーの編集](管理メニューにサブメニュー項目がありません)ページに移動する必要がありますそのベンダーのために。すべてが「plugins/wp_vendors」フォルダーに保存されます。

質問: その編集ページを開くには、どの URL を使用すればよいですか? ベンダーの編集ページにスラッグを登録するにはどうすればよいですか?

PS。ベンダーリストが管理メニューに追加されます

add_menu_page('Vendors', 'Vendors', 8, 'C:\wordpress\wp-content\plugins\wp-vendors\vendors-list.php');

そして、リストページを開くことができます

http://localhost/wp-admin/admin.php?page=wp-vendors/vendors-list.php

誰でもこれについて私を助けることができますか?

4

1 に答える 1

2

まず、最初の add_menu_page 呼び出しを変更することをお勧めします。

add_menu_page( 'Vendors', 'Vendors', 'manage_options', 'wp-vendors', 'my_admin_page_callback' );

ユーザー レベルの引数は推奨されないため、機能を使用することをお勧めします。また、プラグイン ファイルがデフォルトでデータを出力すると、予期しないエラーが発生する可能性があるため、管理ページにはコールバック関数を使用することをお勧めします。

さて、あなたが求めていることを行うことができるいくつかの方法があります。新しいサブメニューを登録することができます:

add_submenu_page( 'wp-vendors', 'Edit Vendor', 'Edit Vendor', 'manage_options', 'wp-vendors-edit', 'my_admin_edit_page_callback' );

そして、編集するベンダーIDをチェックする機能を持っています。存在しない場合は、ベンダーのメイン メニュー ページにリダイレクトします。

この方法では、URL は次のようになります。

http://localhost/wp-admin.php?page=wp-vendors-edit&vendor=<vendor ID>

もう 1 つの方法は、URL 引数を使用して、管理ページのコールバックを if チェックで分離することです。例えば:

if( ( isset($_GET['action']) && $_GET['action'] == 'edit' ) && ( isset($_GET['vendor']) && !empty($_GET['vendor']) ) ){
  //You're editing a vendor.
} else {
  //You're listing the vendors.
}

次に、編集用のリンクを次のようにします。

http://localhost/wp-admin.php?page=wp-vendors&action=edit&vendor=<vendor ID>
于 2010-06-11T15:47:35.857 に答える