• Categories

  • Sponsor

Joko Nugroho

Catatan harian bisnis internet dan sejenisnya.

Meningkatkan Performa WordPress dengan Mengoptimalkan Fungsi get_posts()

Saya mengelola sebuah situs iklan baris yang memiliki jumlah iklan lebih dari 100 ribu. Semua iklannya saya masukkan ke dalam post dalam aplikasi wordpress. Seringkali permintaan terhadap halaman depan maupun arsip terlalu lambat sehingga dapat menghabiskan sumber daya server yang terbatas. Sudah banyak script cache yang coba saya buat belum terlalu menggembirakan, loading sebuah halaman depan masih memakan waktu lebih dari 10 detik bahkan kadang-kadang bisa mencapai ratusan detik. Bagi saya hal ini tidak dapat diterima, karena pengunjung bisa menutup halaman tersebut karena terlalu lama menunggu.

Alhamdulillaah, googling dengan menggunakan kata kunci “query_posts slow” membuahkan hasil dan membawa saya pada halaman Improving query_posts performance. Saya coba ikuti petunjuk pada halaman tersebut dengan mengedit file wp-includes/query.php

Pada wordpress 3.0.3 perhatikan baris ke 2410
Cari baris berikut:

$found_rows = 'SQL_CALC_FOUND_ROWS';

Kemudian ganti baris berikut:

$this->request = " SELECT $found_rows $distinct $fields FROM $wpdb->posts $join WHERE 1=1 $where $groupby $orderby $limits";

dengan script berikut:

$tmp = " SELECT $distinct $wpdb->posts.id FROM $wpdb->posts $join WHERE 1=1 $where $groupby $orderby $limits";
$tmp_q = $wpdb->get_col($tmp);
$tmp_ids = implode($tmp_q,',');
$this->request = " SELECT $found_rows $distinct $fields FROM $wpdb->posts $join WHERE $wpdb->posts.id IN ($tmp_ids) $groupby $orderby ";

Lumayan, setelah mengimplementasinya saya dapat mengakselerasi wordpress hingga di bawah 10 detik setiap proses setiap halaman. Thx DAVE BUCHANAN who has inspired me.

Update 21:59
Ternyata plugin wp_pagenavi gak bekerja nih.

Categories: Optimize