WordPressのカスタム投稿タイプメニューにサブメニューを追加する方法

公開: 2020-01-23

WordPressのカスタム投稿タイプメニューにサブメニューを追加 カスタム投稿タイプメニューにサブメニュー項目を追加する場合は、単純なコードスニペットを使用してこれを簡単に行う必要があります。 理想的には、カスタム投稿タイプメニューには、デフォルトで新しい投稿、分類法、およびすべての投稿メニューが追加されますが、WordPress設定の管理ページに別のサブメニュー項目を追加することもできます。

カスタム投稿タイプメニューにサブメニューを追加する方法を学ぶ前に、プラグインを使用せずにWordPressにカスタム投稿タイプを登録する方法を理解することが重要です。

カスタム投稿タイプメニューの下にサブメニューを表示するには、 add_submenu_page()関数のパラメーターの1つとして、カスタム投稿タイプのスラッグが必要です。 それでは、WordPressテーマにカスタム投稿タイプを登録する方法について簡単に説明することから始めましょう。

カスタム投稿タイプの登録

ただし、その投稿でWordPressにカスタム投稿タイプを追加する方法の詳細をすべて説明しました。 WordPressでカスタム投稿タイプを追加するために必要なコードを簡単に共有します。 カスタム投稿タイプを登録するコードは次のとおりです。

 / **

  *カスタム投稿タイプ-register_post_type()
  * @ description-Njengahチュートリアルカスタム投稿タイプの例
  * @link -https://gist.github.com/Njengah/839466b773085ac2430772e081357cee
  *
  * /

       add_action( 'init'、 "njengah_tutorial_cpt");

       関数njengah_tutorial_cpt(){
        
              $ labels = array(
                           'name' => _x( 'Tutorials'、 'post type general name')、
                           'singular_name' => _x( 'Tutorial'、 'post type singular name')、
                           'menu_name' => _x( 'チュートリアル'、 '管理者メニュー')、
                           'name_admin_bar' => _x( 'チュートリアル'、 '管理バーに新規追加')、
                           'add_new' => _x( 'Add New'、 '')、
                           'add_new_item' => __( '新しいチュートリアルを追加')、
                           'edit_item' => __( 'チュートリアルの編集')、
                           'new_item' => __( '新しいチュートリアル')、
                           'all_items' => __( 'すべてのチュートリアル')、
                           'view_item' => __( 'チュートリアルの表示')、
                           'search_items' => __( '検索チュートリアル')、
                           'not_found' => __( 'チュートリアルが見つかりません')、
                           'not_found_in_trash' => __( 'ゴミ箱にチュートリアルが見つかりません')、
                           'parent_item_colon' => __( '親チュートリアル:')、                     

              );

                     $ args = array(
                           'hierarchical' => true、    
                           'labels' => $ labels、
                           'public' => true、
                           'publicly_queryable' => true、 
                           'description' => __( 'Description。')、
                           'show_ui' => true、
                           'show_in_menu' => true、
                           'show_in_nav_menus' => true、                
                           'query_var' => true、
                           'rewrite' => true、
                           'query_var' => true、
                           'rewrite' => array( 'slug' => 'tutorial')、
                           'capability_type' => 'ページ'、
                           'has_archive' => true、
                           'menu_position' => 22、
                           "show_in_rest" => true、
                           'supports' => array( 'title'、 'editor'、 'author'、 'thumbnail'、 'revisions'、 'page-attributes'、 'custom-fields')

                     );

                     register_post_type( 'tutorial'、$ args);   

       }

このコードを子テーマのfunctions.phpファイルに追加すると、次の画像に示すように、カスタム投稿タイプがダッシュボードに表示されます。

WordPressのカスタム投稿タイプメニューにサブメニューを追加

このコードをカスタムWordPressプラグインに追加して、カスタム投稿タイプを登録することもできます。 また、コード内の「tutorial」キーワードを、それぞれのカスタム投稿タイプ名、例「book」、「movie」などに置き換える必要があります。

カスタム投稿タイプメニューにサブメニューを追加

次に、カスタム投稿タイプメニューの下にサブメニューページを追加する方法に焦点を当てたいと思います。

概要を簡単に説明するために、カスタム投稿タイプメニューにサブメニュー項目を追加するために実行する必要のある手順は次のとおりです。

  1. アクションフックを作成して、サブメニューをそれぞれのコールバック関数に登録します。 この場合、作成する関数は2つあります。
  2. add_submenu_page()の最初のパラメーターを特定の編集投稿タイプのスラッグの例に置き換えますphp?post_type = 'name-of-your-post-type-slug'
  3. PHPにコードを追加すると、カスタム投稿タイプにサブメニューが正常に追加されます。

サブメニューページ機能の追加

この関数add_submenu_pageは、すべての管理メニューページにサブメニューを追加するために使用され、remove_submenu_page関数を使用して、WordPress管理からサブメニューを削除できます。

add_submenu_page()関数はデフォルトで7つのパラメーターを取り、一般的なコードは次のように表すことができます。

 add_submenu_page(

             文字列$ parent_slug、

             文字列$ page_title、

             文字列$ menu_title、

             文字列$ capability、

             文字列$ menu_slug、

             呼び出し可能な$ function = ''、

             int $ position = null

 )。

サブメニューページの追加機能パラメータは、次のように説明できます。

パラメータ説明
$ parent_slug これは親メニューの例のスラッグ名です。この場合は、edit.php?post_type = 'tutorials'になります。
$ page_title タイトルタグの例「チュートリアルサブページの例」に表示されるテキスト
$ menu_title 例「チュートリアル」を作成しているサブメニューに表示されるテキスト
$ capability このメニュー例「管理者」にアクセスできるユーザーのWordPressロール機能
$ menu_slug これは、例を作成するページのスラッグです 'tutorials_subpage_example'
$ function 作成しているサブページに必要な情報を表示するコールバック関数。 タイトルの例 'チュートリアルサブページの例'
$ position これは、他のサブメニューに対するメニュー項目の位置です。 この番号を使用して、好みに合わせてメニューを上下に押すことができます。

このチュートリアルの説明のために、上で作成したチュートリアルのカスタム投稿にサブメニューページを追加し、下の画像に示します。

WordPressのカスタム投稿タイプメニューにサブメニューを追加

カスタム投稿タイプのスラッグを親スラッグパラメータに追加する

サブメニューを登録するには、チュートリアルのカスタム投稿タイプを登録するためのコードを追加した以下のfunctions.phpファイルに次のコードを追加する必要があります。

 / **
  *カスタム投稿タイプカスタム投稿メニューにサブページを追加
  * @ description-Njengahチュートリアルカスタム投稿タイプサブメニューの例
  * @ link-https://gist.github.com/Njengah/0764f2c88742c19b67a212c914c9f25f
  *
  * /

// 針   

add_action( 'admin_menu'、 'add_tutorial_cpt_submenu_example');

// admin_menuコールバック関数

関数add_tutorial_cpt_submenu_example(){

     add_submenu_page(
                     'edit.php?post_type = tutorial'、// $ parent_slug
                     'チュートリアルサブページの例'、// $ page_title
                     'チュートリアル設定'、// $ menu_title
                     'manage_options'、// $ capability
                     'tutorial_subpage_example'、// $ menu_slug
                     'tutorial_subpage_example_render_page' // $ function
     );

}

// add_submenu_pageコールバック関数

関数tutorial_subpage_example_render_page(){

     echo '<h2>チュートリアルサブページの例</ h2>';

}

関数.phpまたはプラグインベースファイルにコードを追加すると、チュートリアル設定が以下に示すように追加され、それぞれのパラメーターがすべて上記で説明され、以下の画像に示されていることがわかります。

WordPressのカスタム投稿タイプメニューにサブメニューを追加

結論

このコードをテーマのfunctions.phpに簡単に追加し、それに応じて調整して、カスタム投稿タイプメニューにサブメニューを正常に追加できます。 このチュートリアルの要点は、カスタム投稿タイプのスラッグを追加することです。これは、 add_submenu_page関数の親スラッグにより、カスタム投稿タイプメニューの下にサブメニューページが追加されるためです。 このソリューションをWordPressテーマの開発で使用できることを願っています。特に、特定のカスタム投稿タイプの設定ページが必要な場合に使用できます。 これは確かに理想的なソリューションです。