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.
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; ?>”>
Il codice di esempio che hai incluso presenta alcuni errori di sintassi. Ad esempio, PHP e HTML non sono separati correttamente.
Ciao, ma quando fai clic su un'opzione selezionata, il collegamento non funziona.
Come risolvere?
Se si fa clic sul pulsante di invio, la console mostra messaggi di errore?
Ciao,
Per favore, volevo sapere come visualizzare questo menu a discesa su una pagina diversa da index.php?
In questo caso, dovresti aggiungere il codice al file del modello del tema corrispondente.
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?
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.
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.
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.
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!
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!
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.
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).
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.
grazie mille
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!
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/
Ciao, posso elencare gli elementi del mio portfolio? Ci sto provando ma… 🙂
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.
Grazie ^^
Grazie ^^
Ciao, c'è un modo per cambiare la dimensione del campo a discesa o del menu a discesa?
Grazie
In CSS, aggiungi
.dropbox {
height: 30px; /* Cambia secondo le tue preferenze*/
}
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
Dove devo metterlo??
Ciao Ferry, inserisci il codice dove desideri visualizzarlo nel tuo tema.
grazie
Perfetto!!!
E per quanto riguarda se si volesse farlo per categoria? Mostrare tutti i post sotto ogni categoria?
Funziona anche con tipi di post personalizzati?
Ciao Fin, sì puoi aggiungere il tipo di post all'array args, ad esempio:
array(
‘numberposts’ => -1,
‘post_type’=> ‘post’,
);
Funziona benissimo e grazie!
Puoi dare consigli per visualizzare tutti i post di una certa categoria
Aggiungi semplicemente cat e l'ID della categoria
array(
‘numberposts’ => -1,
‘post_type’=> ‘post’,
‘cat’ => ‘2’,
);
Saluti Kevin!
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.