Vista la comodità del widget “categorie” che mostra l’elenco delle categorie in una select, perchè non avere anche gli ultime articoli in un menu a tendina ?
E’ molto utile se pensate che di default questa funzionalità elenca gli articoli in un normalissimo elenco puntato e quindi occupa spazio nel widget, quindi se avete bisogno di più spazio, potete accorpare la lista degli ultimi post in una select, bello no ?
Vediamo come fare, è abbastanza semplice; ho creato anche un plugin per i meno esperti di codice PHP.
Scriviamo una piccola funzione con un ciclo foreach che va a popolare la mia select con il titolo del post, al click mi rimanda al post selezionato.
Queste righe di codice vanno inserite nel file functions.php del vostro tema WordPress in uso.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
function recentposts_dropdown() { $string .= '<select id="prdropdown"> <option value="" selected>Seleziona articolo<option>'; $args = array( 'numberposts' => '10', 'post_status' => 'publish' ); $recent_posts = wp_get_recent_posts($args); foreach( $recent_posts as $recent ){ $string .= '<option value="' . get_permalink($recent["ID"]) . '">' . $recent["post_title"].'</option> '; } $string .= '</select> <script type="text/javascript"> var urlmenu = document.getElementById( "prdropdown" ); urlmenu.onchange = function() { window.open( this.options[ this.selectedIndex ].value, "_self" ); }; </script>'; return $string; } add_shortcode('pr_dropdown', 'recentposts_dropdown'); add_filter('widget_text','do_shortcode'); |
Il numero di post è impostato a 10 ma potete cambiarlo a piacimento (ndr riga 5 del codice)
Ora per mostrare l’elenco degli utlimi articoli in un widget, un post o una pagina, potete utilizzate il seguente shortcode
1 |
[pr_dropdown] |
Programmatore WordPress Esperto WooCommerce
Sono l’autore di questo blog con tanti trucchi e guide su WordPress e WooCommerce.
Ciao
complimenti per l’articolo. Mi servirebbe la stessa cosa ma per le pagine. Cioè, ordinare le pagine (ad esclusione di alcune) in una select che selezionando una voce vada alla relativa pagina (in pratica devo inserire delle pagine in una specie di form di ricerca finto)
Si può fare?
grazie
Ciao Gianluca, la funzione che vedi è solo per i post, per le pagine va fatta una query e un plugin non è semplicissimo anche perchè vuoi escluderne alcune.