Appunti WordPress
2 Aprile 2011
Altro post per tecnici anziani della serie “se le cose non me le scrivo da qualche parte poi le dimentico e perdo una vita a reinventare la ruota”.
Visualizzare gli ultimi video di un feed YouTube
Ne avevo già parlato in un vecchio post. A inizio anno ho ripreso in mano quel progetto e ho scoperto che la funzione fetch_rss() è obsoleta.
Niente di preoccupante, la nuova funzione si chiama fetch_feed() (pagina relativa sul Codex) e questo è un esempio di codice (oltre al video viene inserito anche il titolo).
< ?php include_once(ABSPATH . WPINC . '/feed.php'); // $url = indirizzo del canale $rss = fetch_feed($url); if (!is_wp_error( $rss ) ) : // Verifica se l'oggetto è stato creato correttamente // Individua il numero di video presenti, al massimo leggine 3. $maxitems = $rss->get_item_quantity(3); // Crea un array di tutti gli elementi (il primo elemento ha indice 0). $rss_items = $rss->get_items(0, $maxitems); endif; ?> <h3>Video</h3> <ul> < ?php if ($maxitems == 0) echo '<li>Nessun video disponibile'; else foreach ( $rss_items as $item ) : ?> <li> < ?php $youtubeid = strchr($item->get_permalink(),'='); //elimina la parte finale dell'URL a partire da '=' $youtubeid = substr($youtubeid,1); //rimuovi il segno '=' per ottenere l'ID del video $youtubetitle = $item->get_title(); //Inserisci il video ?> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="240" height="176"> <param name="movie" value="http://www.youtube.com/v/<?php echo $youtubeid ?>&hl=en&fs=1" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="http://www.youtube.com/v/<?php echo $youtubeid ?>&hl=en&fs=1" width="240" height="176"> <!--<![endif]--> <p><a href="http://www.youtube.com/v/<?php echo $youtubeid ?>">Visualizza il video»</a></p> <!--[if !IE]>--> </object> <!--<![endif]--> </param></object> <span>< ?php echo $youtubetitle; ?></span> </li> < ?php endforeach; ?> </ul>
Il risultato finale è visibile nella home page di questo sito.
Frequenza di aggiornamento dei feed
WordPress mantiene una cache dei feed e non è particolarmente rapido ad aggiornarla. Per modificare questa impostazione è possibile aggiungere questo codice al file functions.php, impostando il numero di secondi desiderato.
//Cache per aggiornamento feed impostata a 30 minuti add_filter( 'wp_feed_cache_transient_lifetime', create_function('$a', 'return 1800;') );
Blog multilingua
In questi giorni sto provando qTranslate per un nuovo sito e mi sembra decisamente ben fatto. È possibile inserire testi nel tema utilizzando questa struttura con _e() (per scrivere il testo) o __() (per passare il testo come argomento di una funzione)
<?php _e("<!--:en-->English Text<!--:--><!--:it-->Testo italiano - 404<!--:-->"); ?>
Ad esempio è possibile usare lo stesso codice per personalizzare le date
<span class="date"><?php the_time(__("<!--:en-->F j, Y<!--:--><!--:it-->j F y<!--:-->")) ?></span>
Se poi non vi piacciono le bandierine del widget, potete modificarle via CSS senza grossi patemi. Esempio:
.qtrans_language_chooser li a { display: block; height: 32px; padding-top: 6px; } .qtrans_flag_and_text { padding-left: 40px !important; } .qtrans_flag_it { background: url(images/italiano.png) no-repeat !important; } .qtrans_flag_en { background: url(images/inglese.png) no-repeat !important; }
Non è possibile inserire nuovi commenti. I commenti vengono disattivati automaticamente dopo 60 giorni.