Bu sitedeki her şey Sevgi ile kodlanmıştır.

Kategori Listesini Göster

WordPress Sorgularını Hızlandırmak için Mucize Yöntem


FacebookTwitterPinterestTumblrYazdır


WordPress Sorgularını Hızlandırmak için Mucize YöntemWordPress sayfalama (pagination) konusunda "SQL_CALC_FOUND_ROWS" SQL yapısını kullanmaktadır. Bu durum ise, özellikle binlerce yazı veya resim bulunan sitelerde, sayfalar arasında geçişlerde, yavaşlığa sebep olmaktadır. Bu yüzden, özellikle büyük sitelerde, bu yapıyı kullanmak, oldukça yavaşlığa sebep olacaktır. Yaptığım uzun saatler süren araştırmalar neticesinde, bu durumdan kurtulmanın ve daha hızlı sorgular için sizlerle bir kod dizisi paylaşıyor olacağım. Aşağıdaki kodları değiştirmeden, temanızın functions.php dosyası içerisine eklemeniz yeterli olacaktır. Böylelikle, web sitenizdeki bilhassa sayfalama sorguları oldukça fazla hızlı tepki vermeye başlayacaktır.

AYRICA: DNS Prefetch ile WordPress'in Hızını Artıralım

WordPress Sorgularını Hızlandırmak için Mucize Yöntem

if ( ! function_exists( 'wpartisan_set_no_found_rows' ) ) :
function wpartisan_set_no_found_rows( \WP_Query $wp_query ) {
$wp_query->set( 'no_found_rows', true );
}
endif;
add_filter( 'pre_get_posts', 'wpartisan_set_no_found_rows', 10, 1 );
if ( ! function_exists( 'wpartisan_set_found_posts' ) ) :
function wpartisan_set_found_posts( $clauses, \WP_Query $wp_query ) {
if ( $wp_query->is_singular() ) {
return $clauses;
}
global $wpdb;
$where = isset( $clauses[ 'where' ] ) ? $clauses[ 'where' ] : '';
$join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
$distinct = isset( $clauses[ 'distinct' ] ) ? $clauses[ 'distinct' ] : '';
$wp_query->found_posts = $wpdb->get_var( "SELECT $distinct COUNT(*) FROM {$wpdb->posts} $join WHERE 1=1 $where" );
$posts_per_page = ( ! empty( $wp_query->query_vars['posts_per_page'] ) ? absint( $wp_query->query_vars['posts_per_page'] ) : absint( get_option( 'posts_per_page' ) ) );
$wp_query->max_num_pages = ceil( $wp_query->found_posts / $posts_per_page );
return $clauses;
}
endif;
add_filter( 'posts_clauses', 'wpartisan_set_found_posts', 10, 2 );


  1. Yorum bulunmamaktadır.

Bu yazıya yorum göndermek ister misiniz?

Dikkat: Her yorum gönderen kişi, kendi gönderdiği yorumdan sorumlu olmaktadır.
Not: Yazı ile herhangi bir ilgisi bulunmayan yorumların onaylanmadığını belirtmek isteriz.
Yazı Etiketleri
Yukarı Çık