This post is also available in: English
This post is also available in: English

Suatu waktu ketika kita mengubah struktur alamat Permanent Link (Permalink) dari postingan blog WordPress kita dengan yang baru, otomatis alamat URL postingan yang lama juga akan berubah dan tidak akan bisa diakses lagi. Padahal sebelumnya postingan blog kita sudah ada di hasil search engine Google,Yahoo, dsb atau URL dr postingan kita ada di web lain, misal di Twitter atau Facebook. Jadi bagaimana caranya supaya kita tidak kehilangan traffic dari blog kita, terutama postingan yang paling sering di kunjungi karena linknya berubah? Cara untuk mengatasinya adalah dengan meng-install plugin WordPress Permalinks Moved Permanently.
Plugin ini mengakali dengan cara me-redirect alamat URL yang lama ke alamat URL yang baru berdasarkan informasi slug postingan. Jadi bila slug yang sama ditemukan, sebelum permalink lama menghasilkan pesan error 404 karena tidak menemukan URL, maka akan dihasilkan pesan “301 Moved Permanently” dan dibawa ke alamat URL baru.
Contohnya adalah alamat postingan dari blog saya yang lama
http://www.hikaruyuuki.com/blog/2008/11/14/boneka-boneka-jepang-bagian-1.phpx
karena saya telah mengubah Permalink saya, bila alamat di atas diklik maka akan dibawa ke alamat yang baru
http://www.hikaruyuuki.com/blog/boneka-boneka-jepang-bagian-1.html
Hanya saja ada satu masalah yang timbul dan menjadikan plugin ini tidak berhasil, dugaan saya karena slug diambil dari basename URL dan ekstensi berubah dari .phpx ke .php, jadi slug nya yang dihasilkan juga tidak sama sesuai dengan di database. Akhirnya saya akali dengan menghilangkan ekstensi ketika mengambil slug tsb. Edit file Plugin permalinks-moved-permanently.php pada baris ke-44 menjadi:
$slug = ShowFileName( $_SERVER['REQUEST_URI']);
dan tambahkan Function berikut di akhir file:
function ShowFileName($filepath) { preg_match('/[^?]*/', $filepath, $matches); $string = $matches[0]; #split the string by the literal dot in the filename $pattern = preg_split('/\./', $string, -1, PREG_SPLIT_OFFSET_CAPTURE); #get the last dot position $lastdot = $pattern[count($pattern)-1][1]; #now extract the filename using the basename function $filename = basename(substr($string, 0, $lastdot-1)); #return the filename part return $filename; }
Akhirnya setelah saya edit file tsb berhasil deh, dan Permalink lama berhasil di-redirect ke Permalink yang baru.
wah hebat gan solusinya, tapi kalo saya pake plugin Dean lee Permalinks migration