Vogliamo creare una galleria di immagini in ordine casuale in cui le immagini vengano prese dalla Media Library (Libreria Media) di WordPress. Estrarre le immagini non è difficile se si considera il fatto che WordPress le considera come un post di tipo attachment
(allegato) e che il loro tipo MIME deve essere image
. Delle immagini a noi interessa principalmente il parametro dell'URL che punta alla loro posizione nella directory degli upload, ossia il guid
. Vediamo come fare.
Nel file functions.php
del nostro tema definiamo due funzioni, una per reperire gli URL delle immagini e l'altra per creare la galleria:
function get_images_from_media_library() {
$args = array(
'post_type' => 'attachment',
'post_mime_type' =>'image',
'post_status' => 'inherit',
'posts_per_page' => 5,
'orderby' => 'rand'
);
$query_images = new WP_Query( $args );
$images = array();
foreach ( $query_images->posts as $image) {
$images[]= $image->guid;
}
return $images;
}
function display_images_from_media_library() {
$imgs = get_images_from_media_library();
$html = '<div id="media-gallery">';
foreach($imgs as $img) {
$html .= '<img src="' . $img . '" alt="" />';
}
$html .= '</div>';
return $html;
}
Definiamo a questo punto degli stili CSS per la visualizzazione della galleria:
#media-gallery {
height: 130px;
background: #ccc;
padding: 1em;
}
#media-gallery img {
float: left;
width: 20%;
height: 130px;
}
Quindi scegliamo una posizione nel nostro tema dove inserire la galleria (per esempio nel file header.php
) e la richiamiamo come segue:
<?php echo display_images_from_media_library();?>
E questo è il risultato:
[caption id="attachment_2321" align="aligncenter" width="1000" caption="La galleria di immagini casuali con gli stili CSS applicati"][/caption]