Oprek ini cuma mau ngejawab pertanyaan dari salah satu pengunjung blog Jevuska mengenai cara mengganti special character %20 atau spasi yang muncul dari struktur permalink plugin Search Meter buatan Bennett McElwee. Tanda %20 atau spasi akan digantikan dengan tanda “+” (Plus), misalnya seperti ini www.example.com/search/blog%20jevuska menjadi www.example.com/search/blog+jevuska
Cara oprek plugin Search Meter versi 2.7.3 untuk membentuk struktur permalink seperti contoh di atas adalah sebagai berikut:
1. Buka editor plugin kamu pada file search-meter.php.
2. Tambahkan 2 fungsi kode berikut pada line 132 atau di atas fungsi kode function sm_get_relative_search_url($term)
function hapus_karakter($term) { //fungsi hilangkan semua spesial karakter pada keyword
$term = strip_tags($term);
$term = preg_replace('/&.+?;/', '', $term);
$term = preg_replace('/\s+/', ' ', $term);
$term = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', ' ', $term);
$term = preg_replace('|-+|', ' ', $term);
$term = preg_replace('/?[a-z0-9]+;/i','',$term);
$term = preg_replace('/[^%A-Za-z0-9 _-]/', ' ', $term);
$term = trim($term, ' ');
return $term;
}
function gantispasi_tanda($term) { //fungsi ubah spasi %20 jadi tanda plus pada permalink search
$term = strtolower($term);
$term = preg_replace('/&.+?;/', '', $term);
$term = preg_replace('/\s+/', '+', $term);
$term = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '+', $term);
$term = preg_replace('|-+|', '+', $term);
$term = preg_replace('/?[a-z0-9]+;/i','',$term);
$term = preg_replace('/[^%A-Za-z0-9 _-]/', '+', $term);
$term = trim($term, '+');
return $term;
}
3. Cari kode $relative_url = str_replace(‘%search%’, rawurlencode($term), $structure); dan ganti kode rawurlencode($term) di dalamnya menjadi gantispasi_tanda(hapus_karakter($term)), jadinya seperti ini $relative_url = str_replace(‘%search%’, gantispasi_tanda(hapus_karakter($term)), $structure);
4. Jika kamu mau menambahkan extensi (misal .html) untuk struktur permalinknya, kamu tinggal menambahkan ekstensinya pada kode $relative_url = str_replace(‘%search%’, gantispasi_tanda(hapus_karakter($term)), $structure);, jadinya seperti ini $relative_url = str_replace(‘%search%’, gantispasi_tanda(hapus_karakter($term)), $structure).’.html’;
5. Save pekerjaan kamu dan coba lihat hasilnya.
Happy coding sob!
Please Note
- Plugin search meter menyimpan keyword pencarian dalam table database, jadi siap-siap aja overload jika kamu punya banyak trafik.
- Penggantian kata “search” (untuk struktur permalink search result) pada rewrite.php dalam file core wp-nya akan secara otomatis dibaca oleh plugin ini. Jadi kamu nggak perlu repot lagi mengganti kata “search” dalam pluginnya.
- Kalo kamu mau membentuk struktur permalink menjadi tanda “-” kamu tinggal mengubah semua tanda “+” pada fungsi function gantispasi_tanda di atas.
- Untuk WP.3.x, akan muncul tanda plus pada title-nya, begitu pula pada search box dan keyword widgetnya. Cara menghilangkan tanda “+” tersebut, kamu bisa baca di Solusi menghilangkan tanda Plus atau Minus di Title Search WP 3.0 +.