Stamani Andrea mi ha inviato un'e-mail chiedendomi assistenza su una pagina in WordPress che visualizzava il contenuto di un feed remoto utilizzando la funzione di WordPress fetch_feed(). Il template di pagina scritto da Andrea era semplicemente perfetto. L'unico problema è che le date delle voci RSS erano visualizzate in inglese. Questo è normale se si pensa che i contenuti di un feed remoto non vengono gestiti come i post di WordPress. Ecco come risolvere il problema.
Usiamo la funzione PHP setlocale()
all'inizio del template, ancor prima della chiamata alla funzione get_header()
:
<?php
setlocale(LC_TIME, 'it_IT');
/*
Template Name: Nome Template
*/
?>
Quindi estraiamo la stringa della data dalla voce del feed, la convertiamo in un timestamp Unix e la passiamo alla funzione strftime()
:
<?php
$date = $item->get_date();
$ts = strtotime($date);
?>
<p class="date"><?php echo strftime('%A %e %B %Y', $ts);?></p>
Cos'è successo? setlocale()
ha istruito l'interprete PHP a localizzare i formati delle date in italiano (LC_TIME
impostato su it_IT
). È importante ricordare che questa funzione deve essere sempre chiamata all'inizio dello script o della pagina su cui si opera.