X

Como Exibir Todas as Publicações em um Menu Suspenso

Snippets por IsItWP

Você está procurando uma maneira de exibir uma lista de todas as suas publicações em um menu suspenso? Embora provavelmente exista um plugin para isso, criamos um trecho de código rápido que você pode usar para exibir todas as publicações em um menu suspenso no WordPress.

Você pode ajustar o número de publicações exibidas alterando o valor -1 dentro do array $args.

Instruções:

Tudo o que você precisa fazer é adicionar este código ao arquivo index.php do seu tema:

<form action="<? bloginfo('url'); ?>" method="get">
<select name="page_id" id="page_id">
<?php
global $post;
$args = array( 'numberposts' => -1);
$posts = get_posts($args);
foreach( $posts as $post ) : setup_postdata($post); ?>
	<option value="<? echo $post->ID; ?>"><?php the_title(); ?></option>
<?php endforeach; ?>
</select>
<input type="submit" name="submit" value="view" />
</form>

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 trecho de código, considere conferir nossos outros artigos no site, como: Os 50+ melhores temas WooCommerce para sua loja online e Como criar um formulário de doação no WordPress.

Comentários   Deixe uma resposta

  1. Senhor, estou usando o tipo de postagem de portfólio Avada e seu código está funcionando corretamente, mas quebra todo o layout normal da página.

    Adicionei ‘post_type’ => ‘avada_portfolio’,

    O menu suspenso funciona bem, mas todo o conteúdo normal da página tem a miniatura do portfólio.
    Como posso consertar isso?
    Por favor, ajude.

    <form action="” method=”get”>

    — Selecione um Item —

    -1,
    ‘post_type’ => ‘avada_portfolio’,
    );
    $posts = get_posts($args);
    foreach( $posts as $post ) : setup_postdata($post); ?>
    <option value="ID);?>” class=”ID; ?>”>

    1. O exemplo de código que você incluiu tem alguns erros de sintaxe. Por exemplo, o PHP e o HTML não estão devidamente separados.

  2. Olá, mas quando você clica em uma opção selecionada, o link não está funcionando.
    Como resolver isso?

    1. Se o botão de envio for clicado, o console exibe alguma mensagem de erro?

  3. Olá,

    Por favor, eu queria saber como exibir este dropdown em outra página que não seja a index.php?

    1. Neste caso, você precisaria adicionar o código ao arquivo de template do tema correspondente.

  4. Quero colocar um shortcode em um widget de texto para mostrar um menu suspenso com links para todos os meus posts. Portanto, preciso de um código PHP para colocar no plugin PHPCode Snippets. Você pode me ajudar?

  5. Kevin, seu código está funcionando bem para mim. Só preciso confirmar se podemos remover /?submit=view da URL depois que você clica no botão de visualização do post no final da URL, ele é adicionado automaticamente. Como eu removo isso.

    1. Isso parece ser adicionado pelo WordPress. Você pode tentar remover a string de consulta com JavaScript após o carregamento da página, mas isso não é recomendado.

  6. Olá, estou trabalhando em uma aplicação web de classificados no WordPress. Você tem um código Snippet que muda a seleção do dropdown (Categoria) para visualização em lista. Como o estilo de postagem de anúncios do Olx.in. Para que o usuário possa selecionar facilmente vendo tudo de uma vez em vez de rolar para baixo. Espero que você entenda meu problema.

  7. Adicionei o código acima à minha barra lateral em um widget de texto, mas nada aparece na área do dropdown (está apenas branco). Alguma ideia do porquê? Obrigado!

  8. Marta Mystkowska Johnsson October 30, 2014 at 8:21 am

    Olá, ótimo tutorial, mas eu me pergunto se é possível fazer dois dropdowns. O primeiro escolhe uma categoria e o segundo mostra todos os posts dessa categoria e então há um botão (link) que permite ir para o post escolhido? Você acha que é possível? Eu escrevi um código que pega valores codificados e muda a lista com javascript, mas eu gostaria que fosse dinâmico, no momento eu tenho que adicionar cada novo post à minha lista codificada na categoria certa, muita bagunça.... Obrigado!

    1. Sim, algo assim poderia ser feito, no entanto, você precisaria usar ajax para buscar todos os posts dentro de uma categoria específica quando selecionada. Não é apenas uma questão de uma simples alteração no código acima.

  9. Olá Kevin, obrigado pelo seu tutorial. Como criar uma opção selecionada? Eu uso seu código mostrando o título do meu post personalizado, mas quando seleciono um e pressiono o botão enviar, ele volta para o primeiro (quero dizer, nada selecionado).

    1. Este trecho apenas cria o menu, não faz mais nada. No entanto, você pode usar o seguinte script no site irmão do wpsnipp.com, jqsnipp.com, para o lado do jquery.

      http://jqsnipp.com/create-jquery-select-dropdown/

      Em seguida, no trecho acima, altere

      <option value=\"ID; ?>\"> para

      <option value=\"\">

      Isso adicionará o permalink ao valor e o javascript em jqsnipp permitirá que você pule para o local quando selecionar o item do menu.

      1. muito obrigado

  10. Olá Kevin,
    Muito obrigado por postar isso. Estava procurando em todo lugar como fazer isso com tipos de postagem personalizados. Você sabe como posso fazer isso para que, quando o item for selecionado no menu suspenso, ele vá automaticamente para a página sem ter que ter um botão de “enviar”?
    Obrigado!

    1. Olá Chris,

      Em vez de apenas $post->ID para o valor, você poderia adicionar

      get_permalink($post->ID) então use javascript para ver qual opção foi selecionada.
      Se você estiver usando jQuery, tenho um snippet em meu outro site http://jqsnipp.com que você pode
      usar para esse tipo de coisa. http://jqsnipp.com/create-jquery-select-dropdown/

  11. Roberta Mahasti April 4, 2014 at 12:10 pm

    Olá, posso listar meus itens de portfólio? Estou tentando, mas... 🙂

    1. Olá Roberta,

      Presumo que você queira exibir um tipo de post personalizado? Você precisa adicionar o tipo de post ao array $args. Se você adicionar 'post_type' => 'post', isso deve resolver o problema depois que você mudar 'post' para o nome do seu tipo de post personalizado.

      1. Roberta Mahasti April 4, 2014 at 8:16 pm

        Obrigado ^^

      2. Roberta Mahasti April 4, 2014 at 8:16 pm

        Obrigado ^^

  12. Olá, há alguma maneira de alterar o tamanho do dropdown ou do campo dropdown?

    Obrigado

    1. Em CSS, adicione
      .dropbox {
      altura: 30px; /* Altere de acordo com sua preferência*/
      }

  13. Obrigado por este trecho. Desculpe meu inglês, farei o meu melhor 🙂 Preciso de uma “primeira linha” como “Por favor, escolha…”. Você pode me ajudar a colocar esta linha no seu código? garfield853

  14. Ferry Verhoeve August 9, 2013 at 8:04 am

    Onde eu coloco isso??

    1. Oi Ferry, coloque o código onde você deseja exibi-lo em seu tema.

      1. Ferry Verhoeve August 9, 2013 at 8:51 am

        obrigado

  15. Perfeito!!!

  16. E se você quisesse fazer por categoria? Mostrar todas as postagens sob cada categoria?

  17. Isso funciona com tipos de postagem personalizados também?

    1. Oi Fin, sim você pode adicionar o tipo de postagem ao array de argumentos, por exemplo:

      array( ‘numberposts’ => -1, ‘post_type’ => ‘post’, );

      1. Isso funciona muito bem e obrigado!

        Você pode me aconselhar sobre como exibir todas as postagens de uma determinada categoria?

        1. Basta adicionar cat e o ID da categoria

          array( ‘numberposts’ => -1, ‘post_type’ => ‘post’, ‘cat’ => ‘2’, );

          1. Valeu Kevin!

          2. Oi Kevin, obrigado por postar o código nesta página. Tem sido muito útil para mim na organização da barra lateral em (link removido). Por favor, na caixa "Churches of NY", eu gostaria que a caixa começasse com "Select Post" - como posso implementar essa opção? Além disso, como posso fazer com que a seleção vá direto para a postagem sem a caixa "view"? Obrigado.

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!