X

Exibir Menu de Tipo de Post Personalizado como Submenu

Snippets por IsItWP

Você deseja exibir o tipo de post personalizado como um submenu no menu de edição de posts? Embora provavelmente exista um plugin para isso, criamos um snippet de código rápido que você pode usar para exibir o menu do tipo de post personalizado como submenu no WordPress.

Instruções:

Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:

function nacin_register_slideshows_post_type() {
	register_post_type( 'slideshow', array(
		'labels' => array(
			'name' => 'Slideshows',
			'singular_name' => 'Slideshow',
		),
		'public' => true,
		'show_ui' => true,
		'show_in_menu' => 'edit.php',
		'supports' => array( 'title' ,'thumbnail', 'editor' ),
	) );
}
add_action( 'init', 'nacin_register_slideshows_post_type' );

Observação: Se esta é a sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets de código corretamente no WordPress, para não quebrar acidentalmente seu site.

Se você gostou deste snippet de código, considere conferir nossos outros artigos no site, como: 43 melhores temas de fotografia para WordPress e como criar um formulário de contato no WordPress.

Comentários   Deixe uma resposta

  1. Mochammad Taufiq November 26, 2013 at 2:12 am

    Eu registro o post_type com 'add new item', mas 'add new item' não aparece no submenu, alguma sugestão para o meu problema?

  2. Legal. Tentando levar isso um passo adiante e anexar o tipo de post a uma página de menu personalizada. Até agora, sem sucesso... alguma ideia?

    1. Sua pergunta é antiga, mas imaginei que isso pudesse ser útil para outra pessoa.
      Acabei de passar um longo tempo examinando o código-fonte do WP tentando fazer a
      mesma coisa: tenho um menu personalizado criado usando add_menu_page(). Ele tem um punhado
      de itens de sub_menu. Tenho um tipo de postagem personalizado relacionado a este menu e eu
      queria que os links de adicionar / listar para esse tipo de postagem fossem itens de sub_menu.

      Resposta curta: Não há uma maneira fácil de fazer isso no WP. A maneira como ele
      gera os menus e a interface do tipo de postagem personalizada significa que não há uma chamada simples que você
      pode fazer.

      Solução:
      1. Registre seu tipo de postagem com as
      seguintes opções:
      ‘show_ui’ => true,
      ‘show_in_menu’ => false
      Neste
      exemplo, meu tipo de postagem personalizado é acct_notes

      2. No arquivo functions.php do seu tema ou no arquivo do seu plugin, adicione uma ação a
      admin_menu:
      add_action(‘admin_menu’,
      ‘modify_admin_menus’);

      3. Adicione submenu_pages para os dois links de interface de postagem — listar postagens, criar nova
      postagem.
      O primeiro parâmetro é o slug do menu ao qual você está adicionando. O segundo
      é o nome que aparecerá na página. O terceiro é como o link aparecerá.
      O quarto é a capacidade necessária para acessá-lo. O quinto é o slug
      para este item de menu. E o último é a função que gerará a saída. Neste
      caso, não vamos usá-la, então podemos passar NULL.

      add_submenu_page(‘members’, ‘Notas da Conta’, ‘Notas da Conta’,
      ‘manage-options’, ‘view_account_notes’, NULL);

      4. O último passo é a função que alterará esses links de submenu para que
      eles levem às páginas corretas da interface do post.

      function modify_admin_menus(){ global $submenu;

      if(array_key_exists(‘members’, $submenu)){

      foreach($submenu[‘members’] as $key => $value){ $k = array_search(‘view_account_notes’, $value); if($k){

      $submenu[‘members’][$key][$k] = (current_user_can($submenu[‘members’][$key][1]))? admin_url(‘/edit.php?post_type=acct_notes’):”; }

      $l = array_search(‘new_account_note’, $value);

      if($l){ $submenu[‘members’][$key][$l] = (current_user_can($submenu[‘members’][$key][1]))? admin_url(‘/post-new.php?post_type=dojo_acct_notes’) : ”;}

      }

      }

      }

      Seria muito preferível ter essa capacidade integrada, mas isso permitirá que você adicione interfaces de usuário de tipos de post personalizados a qualquer menu que desejar.

  3. Muito obrigado. Você pode me ajudar, por favor? Estou tendo um problema: quero criar um menu no admin do WordPress contendo muitos tipos de post personalizados filhos para facilitar o gerenciamento. Exemplo:

    Menu Facilities inclui tipos de post: – Reuniões; – Casamentos; – SPA

    Obrigado pela ajuda. Muito.

  4. bom hack. obrigado.

    1. de nada, a qualquer momento,

    2.  Não é um hack, é um recurso

Adicionar um comentário

Ficamos felizes que você tenha escolhido deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de privacidade, e todos os links são nofollow. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.

Checklist de Lançamento WordPress

O Checklist Definitivo para Lançamento de WordPress

Compilamos todos os itens essenciais da lista de verificação para o lançamento do seu próximo site WordPress em um e-book prático.
Sim, envie-me o eBook Gratuito!