X

Come visualizzare tutti i post all'interno di un menu a discesa

Snippet di IsItWP

Stai cercando un modo per visualizzare un elenco di tutti i tuoi post all'interno di un menu a discesa? Sebbene esista probabilmente un plugin per questo, abbiamo creato un rapido snippet di codice che puoi utilizzare per visualizzare tutti i post all'interno di un menu a discesa in WordPress.

Puoi regolare il numero di post visualizzati modificando il valore -1 all'interno dell'array $args.

Istruzioni:

Tutto quello che devi fare è aggiungere questo codice al file index.php del tuo 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>

Nota: Se questa è la prima volta che aggiungi snippet di codice in WordPress, consulta la nostra guida su come aggiungere correttamente snippet di codice in WordPress, in modo da non compromettere accidentalmente il tuo sito.

Se ti è piaciuto questo snippet di codice, prendi in considerazione la lettura dei nostri altri articoli sul sito come: Oltre 50 migliori temi WooCommerce per il tuo negozio online e come creare un modulo di donazione WordPress.

Commenti   Lascia una risposta

  1. Signore, sto usando il tipo di post del portfolio Avada e il tuo codice funziona correttamente ma rovina il layout di tutte le pagine normali.

    Ho aggiunto ‘post_type’ => ‘avada_portfolio’,

    Il menu a discesa funziona bene ma tutto il contenuto normale della pagina ha la miniatura del portfolio.
    Come posso risolvere questo problema?
    Per favore, aiutami.

    — Seleziona Elemento —

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

    1. Il codice di esempio che hai incluso presenta alcuni errori di sintassi. Ad esempio, PHP e HTML non sono separati correttamente.

  2. Ciao, ma quando fai clic su un'opzione selezionata, il collegamento non funziona.
    Come risolvere?

    1. Se si fa clic sul pulsante di invio, la console mostra messaggi di errore?

  3. Ciao,

    Per favore, volevo sapere come visualizzare questo menu a discesa su una pagina diversa da index.php?

    1. In questo caso, dovresti aggiungere il codice al file del modello del tema corrispondente.

  4. Voglio inserire uno shortcode in un widget di testo per mostrare un menu a discesa con collegamenti a tutti i miei post. Pertanto, ho bisogno di un codice PHP da inserire nel plugin PHPCode Snippets. Puoi aiutarmi?

  5. Kevin, il tuo codice funziona bene per me. Devo solo confermare se possiamo rimuovere /?submit=view dall'URL una volta fatto clic sul pulsante 'visualizza post' alla fine dell'URL viene aggiunto automaticamente. Come posso rimuoverlo.

    1. Questo sembra essere aggiunto da WordPress. Potresti provare a rimuovere la stringa di query con JavaScript dopo il caricamento della pagina, ma questo non è raccomandato.

  6. Ciao, sto lavorando su un'applicazione web di annunci su WordPress. Hai uno snippet di codice che trasforma una selezione a discesa (Categoria) in una vista elenco. Come lo stile di pubblicazione degli annunci di Olx.in. In modo che l'utente possa selezionare facilmente visualizzando tutto in una volta invece di scorrere. Spero tu capisca il mio problema.

  7. Ho aggiunto il codice sopra alla mia barra laterale in un widget di testo ma non appare nulla nell'area a discesa (è solo bianca). Hai idea del perché? Grazie!

  8. Marta Mystkowska Johnsson 30 ottobre 2014 alle 8:21

    Ciao, ottimo tutorial ma mi chiedo se sia possibile creare due menu a discesa. Il primo sceglie una categoria e il secondo mostra tutti i post di quella categoria e poi c'è un pulsante (link) che permette di andare a quel post scelto? Pensi sia possibile? Ho scritto del codice che prende valori hardcoded e cambia l'elenco con javascript ma vorrei che fosse dinamico, al momento devo aggiungere ogni nuovo post al mio elenco hardcoded nella categoria giusta, un sacco di casino.... Grazie!

    1. Sì, qualcosa del genere potrebbe essere fatto, tuttavia dovresti usare ajax per recuperare tutti i post all'interno di una specifica categoria quando selezionata. Non è solo una questione di una semplice modifica al codice sopra.

  9. Ciao Kevin, grazie per il tuo tutorial. Come creare un'opzione selezionata? Uso il tuo codice per mostrare il titolo del mio custom post type, ma quando ne seleziono uno e premo il pulsante di invio, torna al primo (intendo niente selezionato).

    1. Questo snippet crea solo il menu, non fa altro. Tuttavia, puoi usare il seguente script sul sito gemello di wpsnipp.com, jqsnipp.com, per il lato jquery.

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

      Quindi nello snippet sopra cambia

      Questo aggiungerà il permalink al valore e il javascript su jqsnipp ti permetterà di saltare alla posizione quando selezioni la voce del menu.

      1. grazie mille

  10. Ciao Kevin,
    Grazie mille per aver pubblicato questo. Stavo cercando ovunque come realizzarlo con i custom post type. Sai come posso fare in modo che quando l'elemento viene selezionato dal menu a discesa, vada automaticamente alla pagina senza dover avere un pulsante "invia"?
    Grazie!

    1. Ciao Chris,

      Invece di solo $post->ID per il valore potresti aggiungere

      get_permalink($post->ID) poi usa javascript per vedere quale opzione è stata selezionata.
      Se stai usando jQuery ho uno snippet sul mio altro sito http://jqsnipp.com che puoi
      usare per questo tipo di cose. http://jqsnipp.com/create-jquery-select-dropdown/

  11. Roberta Mahasti 4 aprile 2014 alle 12:10

    Ciao, posso elencare gli elementi del mio portfolio? Ci sto provando ma… 🙂

    1. Ciao Roberta,

      Presumo tu voglia visualizzare un custom post type? Devi aggiungere il post type all'array $args. Se aggiungi 'post_type' => 'post', dovrebbe funzionare dopo aver cambiato 'post' con il nome del tuo custom post type.

      1. Roberta Mahasti 4 aprile 2014 alle 20:16

        Grazie ^^

      2. Roberta Mahasti 4 aprile 2014 alle 20:16

        Grazie ^^

  12. Ciao, c'è un modo per cambiare la dimensione del campo a discesa o del menu a discesa?

    Grazie

    1. In CSS, aggiungi
      .dropbox {
      height: 30px; /* Cambia secondo le tue preferenze*/
      }

  13. Grazie per questo snippet. Scusa il mio inglese, farò del mio meglio 🙂 Ho bisogno di una "prima riga" come "Please Chosse…". Puoi aiutarmi a inserire questa riga nel tuo codice? garfield853

  14. Ferry Verhoeve 9 agosto 2013 alle 08:04

    Dove devo metterlo??

    1. Ciao Ferry, inserisci il codice dove desideri visualizzarlo nel tuo tema.

      1. Ferry Verhoeve 9 agosto 2013 alle 08:51

        grazie

  15. Perfetto!!!

  16. E per quanto riguarda se si volesse farlo per categoria? Mostrare tutti i post sotto ogni categoria?

  17. Funziona anche con tipi di post personalizzati?

    1. Ciao Fin, sì puoi aggiungere il tipo di post all'array args, ad esempio:

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

      1. Amministratore USA 23 settembre 2013 alle 6:57

        Funziona benissimo e grazie!

        Puoi dare consigli per visualizzare tutti i post di una certa categoria

        1. Aggiungi semplicemente cat e l'ID della categoria

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

          1. Amministratore USA 23 ottobre 2013 alle 18:45

            Saluti Kevin!

          2. Ciao Kevin, grazie per aver pubblicato il codice in questa pagina. Mi è stato di grande aiuto nell'organizzare la barra laterale su (link rimosso). Per favore, nella casella "Chiese di NY", vorrei che la casella iniziasse con "Seleziona Post" - come posso implementare questa opzione? Inoltre, come posso far sì che la selezione vada direttamente al post senza la casella "visualizza"? Grazie.

Aggiungi un commento

Siamo lieti che tu abbia scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra normativa sulla privacy e tutti i link sono nofollow. NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.

Checklist per il lancio di WordPress

La Guida Definitiva per il Lancio di WordPress

Abbiamo raccolto tutti gli elementi essenziali della checklist per il lancio del tuo prossimo sito web WordPress in un comodo ebook.
Sì, Inviami l'eBook Gratuito!