web-dev-qa-db-ja.com

カスタム投稿タイプメニューに表示するカスタム分類法を追加するにはどうすればよいですか?

私はこの質問に正しく答えるのが辛いことを本当に知りません。名前バッジ付きのカスタム投稿タイプを作成し、それにカスタム分類法(レベル、スキル)を追加しました。次に、そのカスタム投稿に新しいサブメニューアイテムを追加します。これは私のカスタム投稿です:

  add_action('init', 'bsp_badges_register');
  function bsp_badges_register() {

$labels = array(
    'name' =>_x('Badges', 'post type general name'),
    'singular_name' =>_x('Badge', 'post type singular name'),
    'add_new' =>_x('Add New', 'badge item'),
    'add_new_item' =>__('Add New Badge Item'),
    'edit_item' =>__('Edit Badge Item'),
    'new_item' =>__('New Badge Item'),
    'view_item' =>__('View Badge Item'),
    'search_items' =>__('Search Badge'),
    'not_found' =>__('Nothing found'),
    'not_found_in_trash' =>__('Nothing found in Trash'),
    'parent_item_colon' => ''
);

$args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'query_var' => true,
    'menu_icon' => 'dashicons-welcome-learn-more',
    'rewrite' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'menu_position' => 75,
    'supports' => array('title','editor','thumbnail'),
    'has_archive'=>true,
    'show_in_menu'=>'badge-school'

    //'taxonomies' => array('post_tag','category')
  ); 

register_post_type( 'badge' , $args );
    flush_rewrite_rules();

私の分類法の1つ:

     register_taxonomy(
'skills',
array('badge'), 
array(
'hierarchical'=>true,
'public'=>true,
'label'=>'Skills',
'labels'=>array(
    'name'=> _x( 'Skills', 'taxonomy general name' ),
    'singular_name'=>'Skill',
    'menu_name'=>__('Skills')
    ),
'show_ui'=>true,
'rewrite'=>array('slug'=>'skill'),
)
);

次に、そのようなサブメニューを追加してみました。

    add_action('admin_menu','bsp_plugin_menu');

    function bsp_plugin_menu(){
    add_menu_page('Badge school', 'Badge School', 'manage_options','badge-school','bsp_students_function','dashicons-welcome-learn-more');
    //my taxonomy
    add_submenu_page('edit.php?post_type=badge', 'Skills', 'Skills', 'manage_options', 'edit.php?taxonomy=skill&post_type=badge'); 

しかし、それは表示されません。メニューのバッジのみが表示されます。新しい投稿を追加する必要もありますが、表示されていません。私は何が間違っているのか、それを修正する方法がわかりません。分類なしでサブメニューを追加する必要があるため、すべてを1つのメニューで取得する必要があります。

私の問題を理解していただければ幸いです。先ほどお話ししたように、質問の仕方がわかりません。

1
dea

だから、グーグルをたくさんした後に私の質問に答えるには:

Args配列では、show_in_menuのオプションをコメント化しているため、カスタム投稿タイプがメニュー自体を作成します。次に、管理メニューを追加せず、サブメニューのみを追加しました(フックはまだ残っています)。

    add_action('admin_menu','bsp_plugin_menu');

そして、最初のパラメーターはメニューに表示するパラメーターであり、カスタム投稿タイプの名前です。

    add_submenu_page(**'edit.php?post_type=badge'**, 'Add new students', 'Add new students', 'manage_options','add-new-students','bsp_students_add');

そして今、それはすべての分類法とカスタム投稿でメニューに表示されます。

1
dea