Sviluppatore web, freelancer, blogger e pensatore nonconformista a Milano

Visualizzare dati xml con wordpress

Strano titolo? Lo trovo anch’io. Ma “visualizzare dati xml con wordpress” è solo un esempio dei longtail con cui i motori di ricerca mandano i visitatori al mio blog. Non ho problemi con questo, anzi! Diventa solo problematico quando riesco a capire di che cosa si tratta e vedo che viene usato il codice di articoli preistorici, che ovviamente non è più attuale.

WordPress fornisce diverse possibilità sopratutto in questo caso. Prima di cominciare però dovrebbe essere chiaro come si elaborano i dati (premesso che i dati siano disponibili su un server remoto) e dove li si vuole visualizzare. Quando l’obiettivo è mostrarli soltanto in una pagina, si può cercare una soluzione con un nuovo Page-Template. Per visualizzare l’output regolarmente prima o dopo il content dell’articolo si può cercare una soluzione con un altro filtro per the_content().

La terza possibilità è l’uso dello Shortcode API di WordPress, flessibile e potente. In un articolo si scrive per esempio [countryinfo] e WordPress proverà a eseguire la funzionalità nel caso in cui sia definito uno shortcode corrispondente. Con un parametro l’output è ancora più flessibile: [countryinfo country=”de”]. Per abilitare WordPress dovete aggiungere qualche riga di codice nel file functions.php del tema o in un proprio plugin.

In fondo si definisce soltanto una funzione che si registra con add_shortcode. In questa funzione si può usare shortcode_atts per elaborare i parametri disponibili dopo l’uso in un array. Si deve sapere però che l’array viene normalizzato, vale a dire ridotto ai parametri definiti. In più la funzione si aspetta che il nome dei parametri sia lowercase (minuscolo).

L’esempio (una richiesta a GeoNames) fa esattamente quanto detto finora. La funzione extract esporta le variabili nel namespace della funzione. In alternativa, si può usare l’output di shortcode_atts anche direttamente. Resta aperta la domanda su come si elaborano file remoti. Per non scoprire l’acqua calda ed evitare problemi, è consigliato l’uso della HTTP-API di WordPress. Anche questo è mostrato chiaramente nell’esempio.

L’ultimo passo è l’elaborazione dei dati. PHP 4 è morto! Viva PHP 5 e SimpleXML o JSON, a seconda del formato preferito. Se intendete lavorare con RDF leggete anche l’articolo XML, JSON e RDF. Il resto del lavoro però lo lascio a voi. Buon divertimento con l’implementazione della vostra soluzione.

Parla alla tua mente

*