WordPress random post thumbnails
Uno scoglio sul quale mi areno ogni volta che progetto un template è il footer: non ho mai la più pallida idea di come riempirlo. L’altro giorno mi è venuta un’idea carina, una galleria che proponesse un post a caso sotto forma di immagini, utilizzando in automatico la prima immagine del post.

La prima cosa che ho fatto è stata quella di andare alla ricerca di un plugin che facesse quello che desideravo. Purtroppo però non sono riuscita a trovare niente che facesse al caso mio. In compenso ho trovato un articolo di Wolly che conteneva il codice per mostrare un’immagine a caso tra quelle contenute nel nostro database:
< ?php $hilite = $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE post_type = 'attachment' ORDER BY RAND() LIMIT 1" ); echo '<a href="' . get_permalink($hilite) . '">' . wp_get_attachment_image( $hilite, 'thumbnail' ) . '</a>'; ?>
Il pregio di questo codice è che non deve essere necessariamente inserito all’interno del loop WordPress (quindi nel footer va benissimo), il difetto è che il link delle immagini riporta ad una pagina del nostro blog contenente solo l’immagine stessa.
Mi è allora venuto in aiuto Stefano di Asteriscoweb che ha creato questo codice che funziona perfettamente:
<ul class="random_thumb"> 'attachment', 'numberposts' => $n, 'post_status' => null, 'post_parent' => null, 'orderby' => 'rand', ); $att = get_posts($args); foreach($att as $data){ $img = wp_get_attachment_image_src($data->ID, 'thumbnail'); $img_url = $img[0]; $img_w = $img[1]; $img_h = $img[2]; $img_alt = $data->post_title; $url = get_permalink($data->post_parent); $title = get_the_title($data->post_parent); echo "\t <li>"; echo ""; echo "</li> \n"; } ?></ul>
Basterà inserirlo dove vogliamo appaia la galleria e modificare il valore di $n per impostare il numero di immagini da visualizzare. Per quanto riguarda l’aspetto agiremo tramite CSS sull’attributo .random_thumb più o meno in questo modo:
.random_thumb { margin-left:10px; padding:0; width:960px;} .random_thumb li { height:100px; width:100px; display:inline;} .random_thumb img { margin: 0 10px 0 10px; background-color: #999; padding:5px;} .random_thumb img:hover { background-color: #666;}
Ringrazio ancora Stefano sia per il codice sia per avermi indicato qualche buon libro per cominciare a studiarmi un pò di PHP















[...] a vedere articolo: dreN >> WordPress random post thumbnails Articoli correlati: Guida a WordPress per principianti, come installare e creare un [...]
Per il problema dell’attributo title prova ad usare get_the_title() passandogli l’ID del post a cui ti riferisci che dando uno sguardo al codice dovresti essertelo ricavato tramite $myData->postID.
Ora veniamo ai miei dubbi sul codice che hai scritto:
Perchè mai istanziare una query per ogni risultato? Così vai interrogare n volte il database inutilmente e vai a riscrivere sostanzialmente n volte lo stesso codice: è un po’ uno spreco. Sarebbe più logico e funzionale scrivere una query che ci selezioni esattamente gli n elementi che ci servono e li visualizzi tramite un loop. Io proverei a riscrivere il tutto magari sfruttando anche WP_Query. Se ti serve una mano chiedi, magari cerco di buttare giù qualche riga di codice.
P.S. scusa i miei deliri da informatico/nerd
[...] WordPress random post thumbnails [...]
[...] WordPress random post thumbnails [...]
credo ci sia qualcosa di sbagliato in questo script…