Creare un widget PHP in Wordpress

Creare un widget PHP in Wordpress

Oggi avevo l'esigenza di inserire nella colonna laterale del mio sito gli ultimi miei cinque post pubblicati sul blog di Html.it. Ovviamente dovevo creare un widget PHP tramite l'apposita opzione di Wordpress (nella sezione Widget) che permette di inserire codice HTML e PHP in un box apposito (il widget Text). Dato che il blog di Html.it non contempla l'opzione di fornire agli autori un feed RSS personale, ho dovuto utilizzare la mia pagina personale (linkata sopra) ed estrarre i link dalla struttura della pagina. Usando l'estensione DOM di PHP ricevevo dei warning, poichè tale estensione richiede che la marcatura non presenti errori. Così ho deciso di utilizzare un approccio di tipo scraper utilizzando la funzione file_get_contents() e le espressioni regolari:


<?php
$page = file_get_contents('http://blog.html.it/author/gabroman/');
preg_match_all('#<a href="http://blog.html.it/\d+/\d+/\d+/.+/" title="URL permanente di questo post">.+</a>#', $page, $matches);
$links = array_slice($matches[0], 0, 5);
$html = '<ul>' . "\n";
foreach($links as $link) {
  
  $html .= '<li>' . $link . '</li>' . "\n";


}
$html .= '</ul>' . "\n";
echo $html;
?>

L'espressione regolare di tipo PCRE estrae tutti i link dei miei post dalla pagina. Siccome mi servivano solo i primi cinque, ho ridotto l'array restituito usando la funzione array_slice(). Infine, ho assemblato una stringa HTML e l'ho infine visualizzata tramite un semplice echo.

Torna su