Atualmente, estou desenvolvendo um plugin wordpress que usa dois tipos de postagem personalizados. O que eu quero saber aqui: é possível adicionar um menu de tipo de postagem personalizado como submenu de outro tipo de postagem personalizado?
Atualmente, estou desenvolvendo um plugin wordpress que usa dois tipos de postagem personalizados. O que eu quero saber aqui: é possível adicionar um menu de tipo de postagem personalizado como submenu de outro tipo de postagem personalizado?
Sim. Ao registrar seu tipo de postagem, você precisa definir show_in_menu
a página em que deseja que ela seja exibida.
Aqui, definimos o tipo de postagem "filmes" para ser incluído no submenu em Postagens.
register_post_type( 'movies',
array(
'labels' => array(
'name' => __( 'Movies' ),
'singular_name' => __( 'Movie' )
),
'public' => true,
'has_archive' => true,
'show_in_menu' => 'edit.php'
)
);
Se você tiver uma taxonomia registrada no tipo de postagem personalizada, ela também precisará ser adicionada à página.
No add_submenu_page()
primeiro argumento está a página para atribuí-lo e o último é a lesma do menu.
add_action('admin_menu', 'my_admin_menu');
function my_admin_menu() {
add_submenu_page('edit.php', 'Genre', 'Genre', 'manage_options', 'edit-tags.php?taxonomy=genre');
}
Para adicionar as páginas a outro tipo de postagem personalizado, inclua o parâmetro de sequência de consultas do tipo de postagem junto com os nomes das páginas.
Para adicionar os filmes CPT e seu gênero de taxonomia no tipo de postagem Entretenimento, ajuste o código dessa maneira.
edit.php
torna-se edit.php?post_type=entertainment
edit-tags.php
torna-se edit-tags.php?taxonomy=genre&post_type=entertainment
register_post_type( 'movies',
array(
'labels' => array(
'name' => __( 'Movies' ),
'singular_name' => __( 'Movie' )
),
'public' => true,
'has_archive' => true,
'show_in_menu' => 'edit.php?post_type=entertainment'
)
);
add_action('admin_menu', 'my_admin_menu');
function my_admin_menu() {
add_submenu_page('edit.php?post_type=entertainment', 'Genre', 'Genre', 'manage_options', 'edit-tags.php?taxonomy=genre&post_type=entertainment');
}
show_in_menu
atributo, não funcionou para mim.Nosso tipo de postagem personalizada:
Adicione-o ao tipo de postagem personalizado existente ("produto", por exemplo):
Ou adicione nosso menu de plug-in personalizado:
fonte