Como adicionar submenu ao menu de tipo de postagem personalizado no WordPress

Publicados: 2020-01-23

WordPress Adicionar submenu ao menu de tipo de postagem personalizado Se você deseja adicionar um item de submenu a um menu de tipo de postagem personalizado, faça isso facilmente usando um snippet de código simples. Idealmente, o menu de tipo de postagem personalizado tem como padrão adicionar uma nova postagem, taxonomia e menu de todas as postagens, mas é possível adicionar outro item de submenu a uma página de administração de configurações do WordPress.

Antes de aprender como adicionar submenu ao menu de tipo de postagem personalizado, é importante que você entenda como registrar o tipo de postagem personalizado no WordPress sem usar um plug-in.

Você precisa do slug do tipo de postagem personalizado como um dos parâmetros da função add_submenu_page() para exibir o submenu no menu de tipo de postagem personalizado. Então, vamos começar com uma rápida revisão sobre como registrar um tipo de postagem personalizado no tema WordPress.

Registrando um tipo de postagem personalizado

No entanto, expliquei todos os detalhes sobre como adicionar um tipo de postagem personalizado ao WordPress nesse post; Vou compartilhar rapidamente o código que você precisa para adicionar um tipo de postagem personalizado no WordPress. O código que registra um tipo de postagem personalizado é o seguinte:

 /**

  * Tipo de postagem personalizada - register_post_type()
  * @description- Exemplo de tipo de postagem personalizada do tutorial Njengah
  * @link -https://gist.github.com/Njengah/839466b773085ac2430772e081357cee
  *
  */

       add_action('init', "njengah_tutorial_cpt");

       function njengah_tutorial_cpt(){
        
              $ etiquetas = array(
                           'name' => _x('Tutoriais', 'nome geral do tipo de postagem'),
                           'singular_name'=> _x('Tutorial', 'post type singular name'),
                           'menu_name' => _x('Tutoriais', 'menu admin'),
                           'name_admin_bar' => _x('Tutorial', 'adicionar novo na barra de administração'),
                           'add_new' => _x('Adicionar Novo', ''),
                           'add_new_item' => __('Adicionar novo tutorial'),
                           'edit_item' => __('Editar tutorial'),
                           'novo_item' => __('Novo Tutorial'),
                           'all_items' => __('Todos os tutoriais'),
                           'view_item' => __('Ver Tutorial'),
                           'search_items' => __('Pesquisar Tutoriais'),
                           'not_found' => __('Nenhum tutorial encontrado'),
                           'not_found_in_trash' => __('Nenhum tutorial encontrado na lixeira'),
                           'parent_item_colon' => __('Tutoriais dos pais:'),                     

              );

                     $args = array(
                           'hierárquico' => verdadeiro,    
                           'etiquetas' => $etiquetas,
                           'público' => verdadeiro,
                           'publicly_queryable' => verdadeiro, 
                           'descrição' => __('Descrição.'),
                           'show_ui' => verdadeiro,
                           'show_in_menu' => verdadeiro,
                           'show_in_nav_menus' => verdadeiro,                
                           'query_var' => verdadeiro,
                           'reescrever' => verdadeiro,
                           'query_var' => verdadeiro,
                           'rewrite' => array('slug' => 'tutorial'),
                           'capability_type' => 'página',
                           'has_archive' => verdadeiro,
                           'menu_position' => 22,
                           "show_in_rest" => verdadeiro,
                           'supports' => array( 'título', 'editor', 'autor', 'miniatura', 'revisões', 'atributos de página', 'campos personalizados')

                     );

                     register_post_type('tutorial', $args);   

       }

Você deve adicionar este código ao arquivo functions.php do seu tema filho e o tipo de postagem personalizado deve ser visto em seu painel conforme mostrado na imagem abaixo:

WordPress Adicionar submenu ao menu de tipo de postagem personalizado

Este código também pode ser adicionado a um plugin WordPress personalizado para registrar o tipo de postagem personalizado. Você também deve substituir a palavra-chave 'tutorial' no código pelo seu respectivo nome de tipo de postagem personalizado, exemplo 'livro', 'filme' etc.

Adicionar submenu ao menu de tipo de postagem personalizado

Agora queremos nos concentrar em como adicionar a página do submenu no menu de tipo de postagem personalizado.

Para uma visão geral rápida, a seguir estão as etapas que você deve realizar para adicionar um item de submenu ao menu de tipo de postagem personalizado:

  1. Crie um gancho de ação para registrar o submenu com as respectivas funções de retorno de chamada . Neste caso, há duas funções a serem criadas.
  2. Substitua o primeiro parâmetro de add_submenu_page( ) pelo exemplo específico de slug de tipo de postagem de edição php?post_type='name-of-your-post-type-slug'
  3. Adicione o código no php e você terá adicionado com sucesso o submenu ao tipo de postagem personalizado.

Adicionar função de página de submenu

Esta função add_submenu_page é usada para adicionar submenu em todas as páginas do menu admin e você pode usar a função remove_submenu_page para remover submenu do admin do WordPress .

A função add_submenu_page() por padrão leva 7 parâmetros e o código geral pode ser expresso da seguinte forma:

 add_submenu_page(

             string $parent_slug,

             string $page_title,

             string $menu_title,

             string $ capacidade,

             string $menu_slug,

             $função que pode ser chamada = '',

             int $ posição = null

 )

Os parâmetros da função adicionar página de submenu podem ser descritos da seguinte forma:

Parâmetro Descrição
$parent_slug Este é o nome do slug para o exemplo do menu pai, neste caso, será edit.php?post_type ='tutorials'
$page_title O texto a ser exibido no exemplo de tags de título 'exemplo de subpágina de tutoriais'
$menu_title O texto a ser exibido no submenu que estamos criando exemplo 'Tutoriais'
$ capacidade O recurso de função do WordPress de usuários que podem acessar este exemplo de menu 'administradores'
$menu_slug Este é o slug da página que estaremos criando exemplo 'tutorials_subpage_example'
$função A função de retorno de chamada que exibirá as informações que queremos na subpágina que estamos criando. Exemplo de um título ' Exemplo de subpágina de tutoriais'
$posição Esta é a posição do item de menu em relação aos outros submenus; você pode usar este número para empurrar o menu para cima e para baixo de acordo com sua preferência.

Para ilustração neste tutorial, será adicionada uma página de submenu à postagem personalizada de tutoriais que criamos acima e conforme mostrado na imagem abaixo:

WordPress Adicionar submenu ao menu de tipo de postagem personalizado

Adicionar Slug de tipo de postagem personalizado ao parâmetro Slug pai

Para cadastrar nosso submenu devemos adicionar o seguinte código ao arquivo functions.php abaixo onde adicionamos o código para cadastrar os tutoriais custom post type:

 /**
  * Tipo de postagem personalizada adicionar subpágina ao menu de postagem personalizada
  * @description- Exemplo de submenu de tipo de postagem personalizada do tutorial Njengah
  * @link - https://gist.github.com/Njengah/0764f2c88742c19b67a212c914c9f25f
  *
  */

// Gancho   

add_action('admin_menu', 'add_tutorial_cpt_submenu_example');

//função de retorno de chamada admin_menu

function add_tutorial_cpt_submenu_example(){

     add_submenu_page(
                     'edit.php?post_type=tutorial', //$parent_slug
                     'Exemplo de subpágina do tutorial', //$page_title
                     'Configurações do tutorial', //$menu_title
                     'manage_options', //$capability
                     'tutorial_subpage_example',//$menu_slug
                     'tutorial_subpage_example_render_page'//$function
     );

}

// função de retorno de chamada add_submenu_page

function tutorial_subpage_example_render_page() {

     echo '<h2> Exemplo de subpágina de tutorial </h2>';

}

Ao adicionar o código ao arquivo functions.php ou ao seu arquivo base do plugin, você deverá ver que as configurações dos Tutoriais foram adicionadas conforme mostrado abaixo e com todos os respectivos parâmetros discutidos acima e conforme ilustrado na imagem abaixo:

WordPress Adicionar submenu ao menu de tipo de postagem personalizado

Conclusão

Você pode facilmente adicionar este código ao functions.php do seu tema e ajustar de acordo para adicionar com sucesso o submenu ao menu de tipo de postagem personalizado. A vantagem deste tutorial é adicionar o slug de tipo de postagem personalizado, pois o slug pai da função add_submenu_page resultará na adição da página de submenu no menu de tipo de postagem personalizado. Espero que você possa usar esta solução no desenvolvimento do seu tema WordPress, especialmente quando precisar de alguma página de configurações para tipos de postagem personalizados específicos; esta é certamente a solução ideal.