Preluări de conţinut cu WordPress


Am mai discutat despre preluarea de conţinut folosind PHP. Să ne oprim acum la cazul particular numit WordPress. Dacă e vorba de preluare din RSS e uşor. Dar să zicem că vrem să preluăm folosind un API. Orice API. Problema este că, în funcţie de configurarea serverului, una sau alta dintre metodele PHP pot să eşueze. Testăm care merge şi care nu? În WordPress există o clasă specială pentru preluări, şi se ocupă ea să verifice care metodă merge. Aceasta face viaţa mai uşoară pentru noi. Am aflat despre clasa WordPress, existentă încă din WordPress 2.7 într-un articol de acum câteva luni: How To Make HTTP Requests with WordPress.

imagine

Autorul, binecunoscutul “planetOzh”, subliniază în articol că această clasă este prea puţin utilizată de către autorii de pluginuri… deşi este incredibil de simplu de folosit. Practic ar fi doar două rânduri de scris:

[PHP]$request = new WP_Http;
$result = $request->request( ‘http://www.pagina.dorita.ro/’ );[/PHP]

Cum însă nu mi-ar plăcea să vă las doar cu atât, am încercat să duc puţin mai departe. M-am jucat puţin cu API-ul de la YouTube şi am construit un exemplu ceva mai lung (dar tot din doar câteva linii de cod!!!) care ne oferă primele 10 rezultate ale unei căutări. Am extras titlul clipului, lungimea în secunde, imaginea (thumbnail-ul) şi evident linkul. Astfel codul de mai jos vă poate fi util (cu o minimă adaptare la început) chiar şi fără WordPress. Luaţi-l chiar ca o introducere pentru API-ul YouTube.

[PHP]$request = new WP_Http;
$url = ‘http://gdata.youtube.com/feeds/api/videos?q=kate+melua&v=2’;
$result = $request->request($url);
$xml = simplexml_load_string($result[‘body’]);
for($i=0;$i<10;$i++){ $titlu = $xml->entry[$i]->title;
$media = $xml->entry[$i]->children(‘http://search.yahoo.com/mrss/’);
$yt = $media->children(‘http://gdata.youtube.com/schemas/2007’);
$attrs = $yt->duration->attributes();
$secunde = $attrs[‘seconds’];
$videoid = $yt->videoid;
$attrs = $media->group->thumbnail[0]->attributes();
$imagine = $attrs[‘url’];
echo ‘

‘.$titlu.’ (‘.$secunde.’ secunde)

‘;
echo ‘

‘.

‘;
}[/PHP]

Ce se întâmplă în cod? Primele linii sunt deja clare (folosesc clasa WordPress). Apoi încarc “corpul”, adică ceea ce a transmis serverul ca rezultat la preluarea de conţinut. Deschidem apoi o buclă şi salvăm valorile care ne interesează. Încărcaţi XML-ul acesta pentru a înţelege liniile care urmează. La final afişarea. Atât! Nu a fost simplu? Iar modul de preluare a informaţiilor nu a mai fost treaba noastră, ci a făcut WordPress. Minunat!

PS: Dacă vreţi să vedeţi un exemplu mai complex legat de API-ul YouTube mergeţi aici.


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (1 evaluări, media: 5,00 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *