WordPress Temaya Özel Cache Önbellekleme

WordPress önbellekleme işlemini temaya özel bir yapıya dönüştürebiliriz, böylece istediğiniz herhangi bir yerde bu işlevi kullanabilirsiniz. Aşağıda, önbellekleme işlemini modüler bir hale getiren bir örnek verilmiştir:


function cache_query_results($query_args, $transient_key, $expiration = 3600) {
    $cached_results = get_transient($transient_key);

    if (!$cached_results) {
        $query = new WP_Query($query_args);
        $cached_results = $query->posts;
        set_transient($transient_key, $cached_results, $expiration);
    }

    return $cached_results;
}

Bu işlev, bir sorguyu alır ve sonuçlarını önbelleğe alır. Parametreler şunlardır:

$query_args: Bir dizi olarak sorgu argümanları.
$transient_key: Önbelleğin anahtarı.
$expiration: Önbelleğin geçerlilik süresi (varsayılan olarak 3600 saniye yani 1 saat).

Bu işlevi kullanarak herhangi bir sorguyu önbelleğe alabilirsiniz. Örneğin, belirli bir kategorideki son beş gönderiyi almak istiyorsanız, aşağıdaki gibi kullanabilirsiniz:


$query_args = array(
    'post_type' => 'post',
    'posts_per_page' => 5,
    'orderby' => 'date',
    'order' => 'DESC',
    'category_name' => 'kategori-slug', // Kategoriye göre filtreleme
);

$transient_key = 'custom_query_results';
$custom_query_results = cache_query_results($query_args, $transient_key);

Bu kod, son beş gönderiyi önbelleğe alır ve custom_query_results anahtarıyla saklar. Sonuçları herhangi bir yerde kullanabilirsiniz.

Özetlemek gerekirse, yukarıdaki işlevi kullanarak herhangi bir sorguyu önbelleğe alabilir ve sonuçlarını istediğiniz yerde kullanabilirsiniz. Bu şekilde, her sorgu için ayrı ayrı önbellek kodu yazmak zorunda kalmazsınız ve işlevi tek bir yerde değiştirerek tüm sorgularınızı etkileyebilirsiniz.