3

ダッシュボードページ、設定ページ、設定用の追加ページ、カスタム投稿タイプを使用してプラグインを作成しようとしています。

具体的には、管理者では、関数add_menu_pageおよびadd_submenu_pageを介してメニューにいくつかのページを追加したり、プラグインに関連するいくつかのカスタム投稿タイプを作成したりします。

問題は、プラグインメニューオプションの下にカスタム投稿タイプメニューをグループ化する方法です。

たとえば、関数add_menu_pageを使用してメニューオプション「MyPlugin」を作成し、このメニューの下に関数add_submenu_pageを使用して「設定ページ」、「タスクページ」、「ダッシュボード」のページを追加しカスタムを作成するとします。投稿タイプ「車」。MyPluginメニューオプションの下に「Cars」メニューを配置するにはどうすればよいですか?

私がそのようになりたい最終結果:

Dashboard
    Home
    ...
Posts
    All Posts
    ...
Settings
    General
    ...
    ...
MyPlugin             <- How to add this menu structure ?
    Dashboard        <- How to add this menu structure ?
    Cars             <- How to add this menu structure ?
    Settings Page    <- How to add this menu structure ?
    Do stuff page    <- How to add this menu structure ?

実際の問題は、メニュー構造を作成する方法ではなく、MyPluginメニューの下に「Cars」カスタム投稿タイプメニューを追加する方法です。

「register_post_type」属性で次のオプションを試しましたが、うまくいきませんでした。

'show_in_menu'          =>  'admin.php?page=myplugin.php'

それは達成可能ですか?

4

2 に答える 2

5

私は同じ問題を抱えていて、この解決策を証明しました:

プラグインメニューページについては、これを試してください。

function my_plugin_menu(){
   add_menu_page( 
       'My Plugin', 
       'My Plugin', 
       'capabilities', 
       'my_plugin_index', 
       'my_plugin_function', 
       plugins_url( 'images/my_plugin_icon.png', __FILE__ ), 
       menu_position 
    );
// add some submenu pages
   ...
   ...
}

あなたのregister_post_type関数ではこれ:

'show_in_menu' => 'my_plugin_index' // slug from your plugin menu page

これにより、選択した位置にメニューページが表示され、サブメニューとしてカスタム投稿タイプが表示されます。

于 2014-05-29T15:49:48.017 に答える
4

内にregister_post_type、この小さなスニペットを追加します

"menu_position" => 100,// below second seperator

メニューの位置は次のとおりです

 2 Dashboard
 4 Separator
 5 Posts
 10 Media
 15 Links
 20 Pages
 25 Comments
 59 Separator
 60 Appearance
 65 Plugins
 70 Users
 75 Tools
 80 Settings
 99 Separator

位置を100より大きい値に設定すると、管理メニューの一番下に位置が追加され続けます。

カスタムwp投稿タイプジェネレーター(SITE GONE)を作成しました。右側にカスタム投稿タイプの位置が表示され、投稿タイプ名を入力します(複数形)。この下でメニュー位置を選択できます。位置を変更して、これが表示される場所を表示します。

メニュー構造の構築に問題がある場合は、これを試してください

function myplugin_menu() {
    add_menu_page('MyPlugin', 'MyPlugin', 'add_users', __FILE__, 'myplugin-page-name', plugins_url('MyPluginFolder/images/icon.png') );
    add_submenu_page(__FILE__, 'Cars', 'Cars', 8, 'myplugin-cars-page', 'cars');
    add_submenu_page(__FILE__, 'Settings', 'Settings', 8, 'myplugin-settings-page', 'myplugin_settings_function');
    add_submenu_page(__FILE__, 'Do Stuff', 'Do Stuff', 8, 'myplugin-dostuff-page', 'myplugin_dostuff_function');
}
add_action('admin_menu', 'myplugin_menu');

http://codex.wordpress.org/Function_Reference/add_menu_page

于 2013-03-28T10:12:38.980 に答える