Skrip auto konten dalam tutorial cara membuat blog auto-generated content sebenarnya sangat banyak fungsinya. Proses generate konten yang dihasilkan bukan hanya dalam bentuk konten tertulis saja, tapi juga gambar, book, news, dan video. Tapi kali ini kita membahas Google Search API untuk image-nya saja dulu. Seperti halnya cara kerja search engine gambar dari Bing API pada tutorial sebelumnya, Google Search API image ini lebih banyak fungsi yang kita bisa tambahkan dan hasil pencariannya juga lebih banyak dibandingkan dengan menggunakan API Bing.
Bagaimana cara membuat mesin pencari Image dengan Google API di halaman search result WordPress?, ikuti saja langkah-langkahnya sebagai berikut:
1. Buka editor search.php blog wp kamu.
2. Kode 1 (Script proses keyword) – Tempatkan Kode berikut di paling atas sebelum kode <?php get_header(); ?>, jangan lupa daftarkan situs kamu di Google API sebelumnya untuk mendapatkan API key http://code.google.com/apis/ajaxsearch/key.html
<?php define('GOOGLE_API_KEY', '');
function pete_curl_get($url, $params){$post_params = array();
foreach ($params as $key => &$val) {
if (is_array($val)) $val = implode(',', $val);
$post_params[] = $key.'='.urlencode($val);
}
$post_string = implode('&', $post_params);
$fullurl = $url."?".$post_string;
$ch = curl_init();curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($ch, CURLOPT_URL, $fullurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040608'); //kamu bisa pake user agent yang lain, lihat listnya di sini www.user-agents.org
$result = curl_exec($ch);curl_close($ch);
return $result;
}function perform_google_web_search($termstring)
{
$start = 0;
$result = array();
while ($start<10) //kamu bisa ganti angka "50" untuk jumlah list yang ditampilkan
{
$searchurl = 'http://ajax.googleapis.com/ajax/services/search/images?v=1.0';
$searchurl .= '&key='.'ABCDEFG'; //ganti ABCDEFG dengan kode api Google http://code.google.com/apis/ajaxsearch/signup.html
$searchurl .= '&start='.$start;
$searchurl .= '&rsz=large'; //kamu bisa pake "small" untuk menampilkan hanya 4 (maksimal) pencarian
$searchurl .= '&filter=0'; //kamu bisa ganti "filter=1" untuk mem-filter hasil pencarian
$searchurl .= '&q='.urlencode($termstring);
$response = pete_curl_get($searchurl, array());
$responseobject = json_decode($response, true);
if (count($responseobject['responseData']['results'])==0)
break;
$allresponseresults = $responseobject['responseData']['results'];
foreach ($allresponseresults as $responseresult)
{
$result[] = array(
'url' => $responseresult['visibleUrl'],
'title' => $responseresult['titleNoFormatting'],
'thumbnail' => $responseresult['tbUrl'],
'originalurlimage' => $responseresult['originalContextUrl'],
);
}
$start += 8;
}
return $result;
}if (isset($_REQUEST['s'])) {
$termstring = urldecode($_REQUEST['s']);
} else {
$termstring = '';}
?>
2.Kode 2 (hasil yang ditampilkan) - Tempatkan kode berikut sebelum kode <?php endif; ?>.
<?php
function hilangkan_spesial_karakter($result) { //fungsi hilangkan semua spesial karakter
$result = strip_tags($result);
$result = preg_replace('/&.+?;/', '', $result);
$result = preg_replace('/\s+/', ' ', $result);
$result = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', ' ', $result);
$result = preg_replace('|-+|', ' ', $result);
$result = preg_replace('/?[a-z0-9]+;/i','',$result);
$result = preg_replace('/[^%A-Za-z0-9 _-]/', ' ', $result);
$result = trim($result, ' ');
return $result;
}
function CleanFileNameBan($result){
$bannedkey = array("key","key","key"); //masukkan kata kunci satu persatu untuk menghindari kata-kata yang tidak diinginkan.
$result = str_replace($bannedkey, '',$result);
$result = trim($result);
return $result;
}
?>
<?php $termstring = $s ?>
<?php if ($termstring!='') {
$googleresults = perform_google_web_search($termstring);
//Kamu bisa ganti kode <h1> serta test yang ada sesuai dengan kode html dan text keinginan kamu begitu juga dengan yang lainnya
print '<h1>Gambar '.CleanFileNameBan(hilangkan_spesial_karakter($s)).' yang terkait:</h1>';
print '<p style="font-weight:bold">Powered by Google</p>';
foreach ($googleresults as $result) {
print '<div class="post">';
print '<h1 class="title"><a href="'.$result['originalurlimage'].'">'.$result['title'].'</a></h1>';
print '<a href="'.$result['originalurlimage'].'"><img src="'.$result['thumbnail'].'"/></a>';
print '<p style="color:#777777">Sumber: '.$result['url'].'</p>';
print '</div>';
}
}
?>
Selesai!
Penjelasan bagaimana hasil generate kode di atas bisa menampilkan gambar
Saya cuma mengubah referensi kode sebelumnya dengan kode berikut:
..... 'url' => $responseresult['visibleUrl'],// Kode "visibleUrl" untuk menampilkan alamat url gambar 'title' => $responseresult['title'], //Kode "title" untuk menampilkan title gambar 'thumbnail' => $responseresult['tbUrl'], // Kode "tbUrl" untuk menampilkan thumbnail gambar 'originalurlimage' => $responseresult['originalContextUrl'],//Kode "originalContextUrl" untuk menampilkan link ke halaman gambar aslinya .....
Kode Hasil Proses
..... print '<h1 class="title"><a href="'.$result['originalurlimage'].'">'.$result['title'].'</a></h1>'; print '<a href="'.$result['originalurlimage'].'"><img src="'.$result['thumbnail'].'"/></a>'; print '<p style="color:#777777">Sumber: '.$result['url'].'</p>'; .....
Kamu bisa belajar mengubah referensi kode tersebut dengan kode dari Google API, referensinya di sini. Selamat memodifikasi dan mencoba Sob! :)
Please Note
Ikuti petunjuk-petunjuk yang ada dalam kode.
Baca baik-baik aturan penggunaan Google API jika mau menggunakan skrip ini.
Advance user only!
Update 30 APRIL 2010
Skrip diubah untuk menyesuaikan dengan aturan main Google AJAX Search API
Baca juga tips WordPress untuk menghentikan pencurian feed konten blog WorPress Anda.
Bagikan
om jev bagian ini $searchurl .= ‘&rsz=large’; klo pake api bing di post sebelum nya bisa ga ya ?
bos kok ga bisa ?
http://xtattoo.info/?s=hairstyle
susah bngt ya .. apa yg salah ??
Tanya lagi om, :D
Kalo mo pasang script ini di single post n menggunakan post title sbg keywordnya, apa aja yang harus dirubah ya?
Thanks
Halo, salam kenal om…
Bisa gak ya om, kalo resultnya dibikin kaya gallery blog ini seperti dijelaskan di sini? Makasih…
tanya lagi neih om,,,, om tau gak script pencari torrent???? sorry kalo gak nyambung,,, :-)
Sorry om nggak tau, kalo mo nyari seperti itu banyak kok di forum DP.
Mau nanya nih om responseresult[‘visibleUrl’] ini mestinya memunculkan URL gambarnya kan?? tapi kok malah gak muncul ya,,?
Betul mas. Seharusnya muncul kok. Ini referensi arraynya code.google.com/apis/imagesearch/v1/reference.html
Om jevuska emang top markotop,,,
Ternyata yang membedakan ada pada /services/search/images?v=1.0′;
kalau untuk yang video apa tinggal ganti /services/search/video?v=1.0′;
gitu ya om??
trus di bagian result = array nya gemana om
Yup. Untuk arraynya kamu bisa pake referensi di code.google.com/apis/videosearch/v1/reference.html
Om jevuska emang top markotop,,,, ternyata bedanya cuma di ajax/services/search/images?v=1.0 ya om,,,
kalau video apa tinggal ganti ajax/services/search/video?v=1.0 gitu ya om???
tapi di bagian $result[] = array
harus di isi apa om??? untuk video,,
makasih banyak dulu om untuk yang image,, udah berhasil,,
nunggu postingan yang pake GOOGLE API NeWs OM!!! :)
Udah di jawab kok, maap om telat jawabnya :)
om jevu,, kalo code untuk google news gimana???
ditunggu lho om,,
agak ribet nih tetap make tutorial ini.
Ganti http://ajax.googleapis.com/ajax/services/search/images?v=1.0 line 21 kode 1 dengan ajax.googleapis.com/ajax/services/search/news?v=1. dan arraynya pake referensi ini code.google.com/apis/newssearch/v1/reference.htm
Begitu juga untuk kode 2-nya.
om jev,, kalo yang pake google news gmn codenya????
kan kayaknya lebih cepet ke indexnya,,,
Mkasih om hmpir 5 blan lbih saya nyoba agc dri om jev ,tp bru kmrin ini bisa brhasil…
trus pngen nnya nih om,klu hsil gnerate link kluarnya d psangin kyak Adf.ly ato linkbucks gmna ya om crnya. mkasih..
Om nggak pernah sih nyoba Adf.ly ato linkbucks, jadi nggak tau cara kerjanya seperti apa. Yang jelas kalo generate linknya, mainnya cuma di kode Kode 2 (hasil yang ditampilkan) line 17.
mkasih om dah d jwb,iya gpp,udah ktemu jwbnany nih buat generate link di kode2 line 17
masih newbie om, mohon bimbingannya
asik nih trik satu ini, mo nanya om jev kalo ukuran thumbnail atau hasil gambar yang kita tampilkan agar bisa kita tentukan gimana om jev?
Kamu bisa tambahkan style pada line 30 kode 2
Misalnya seperti ini:
print '<a href="'.$result['originalurlimage'].'"><img height="50px" width="50px" src="'.$result['thumbnail'].'"/></a>';
ha ha ha… udah bisa mas… tinggal di single nya masih belum bisa.. cepetan ya postingnya.. [maksa mode ON] :D :D
@Mas Adi:Sip! Sabar yach… :)
kalo sebelumnya di search.php udah ada kode untuk AGC kontent gmn OM? aku kok gak bisa ya??? hiks… :(
@Mas Adi:function-nya digabung mas Adi, terus ubah nama functionnya. Ntar ane post untuk lebih jelasnya. :)
mas, klo menaikkan limit query gogle api gmna ya? untk pdf search 15K UV per day hasil searchnya ga mau muncul…. pusing…. ada ide ga mas?
oh iya.. :)
mo nanya lg oom Jev, kl yg pk nyahoo boss gmn ya oom.. kok kl liat di panduan boss ada “img.dimensions=wallpaper” kayaknya asyik tuch, soalnya kl yg di google pk width ama height perintahnya jd kebanyakan en ga variatif dimensi gambarnya, mo cb utak-atik sendiri kok jd ancur.. :)
terima kasih atas perhatiannya oom Jev..
@Ary:yahoo boss masih banyak error yang masuk di log_error-nya WP
nanya nich oom Jev, kl tampilan kode ‘result url’ khan nampilin url nya full.. kl dibikin url utamanya aja yg keliatan bisa ga oom Jev..?
misal
hxxp://namadomain.com/imagetampil.gif
jadi
namadomain.com
atau
situs.namadomain.com
buat yg dr sub-domain..
@Ary:bukannya kode “result url” dalam tutorial ini memang untuk memunculkan url utamanya. “result url” artinya “visibleUrl”, nah kode inilah yang memunculkan url utamanya, bukan url gambar. Referensi: hxxp://code.google.com/apis/ajaxsearch/documentation/reference.html#_class_GimageResult
bisa gak mas mesin pencari di wordpress di jadikan multi pencarian misal /search/keyword , /pdf/keyword , gambar/keyword. jadi terpisah2 tetapi tetap dalam satu domain contoh kayak Kayak “Findtoyou.com”
@matping:bisa kok. nanti saya post. Sabar yach :)
saya hanya bisa menerapkan yang auto conten di single post… yang lainnya gagal :(
jujur saya bingung, karena mbolak mbalik :D
@popopio:salam kenal mas popopio.hehehe… emang agak perlu sedikit usaha mas :mrgreen: coz saya juga posting-nya satu-persatu, hmmm nanti diusahakan diperbaiki lagi biar nggak bolak-balik :)