Sanırım şimdi ne yapmaya çalıştığını anladım. Eğer ile özel bir sorgu çalıştırdığınızda WP_Query
ve sayfa başına sadece 5 mesajları almak için sınırı ayarlamak, sadece 5 mesaj sorgu tarafından alınır ve bu sorgunun sadece 5 mesajları yapacak, ANCAK pagination uğruna, WP_Query
hâlâ tüm veritabanı geçiyor ve sorgunun ölçütlerine uyan tüm gönderileri sayar.
Sorgu $found_posts
ve $max_num_pages
özellikleri baktığınızda görülebilir . Bir örnek verelim:
Varsayılan gönderi türüne ait 20 gönderiniz var post
. Sen sadece pagination olmadan son 5 Mesajları gerekir. Sorgunuz buna benziyor
$q = new WP_Query( 'posts_per_page=5' );
var_dump( $q->posts )
beklendiği gibi size son 5 yazı verecek
echo $q->found_posts
sana vereceğim 20
echo $q->max_num_pages
sana vereceğim 4
Bu fazladan çalışmanın etkisi, yalnızca birkaç yayın içeren siteler üzerinde çok az olmakla birlikte, yüzlerce veya binlerce yayın içeren bir siteyi çalıştırıyorsanız, bu pahalı olabilir. Bu sadece en son 5 gönderiye ihtiyacınız olacaksa, bu bir kaynak israfıdır.
no_found_rows
İhtiyacınız olan 5 gönderiyi bulduktan sonra, kefaletinizi geri almak için kullanabileceğiniz boolean değerlerini kullanan belgelenmemiş bir parametre var . Bu, WP_Query
sorgulanan gönderilerin miktarını aldıktan sonra ölçütlere uyan başka gönderiler aramaya zorlayacaktır. Zaten içine inşa edilir Bu parametre get_posts
neden olduğu, get_posts
biraz daha hızlı daha WP_Query
rağmen get_posts
kullanımlarWP_Query
Sonuç
Sonuç olarak, bir sorguda sayfalandırma kullanmayacaksanız, 'no_found_rows=true'
işleri hızlandırmak ve kaynak israfından tasarruf etmek her zaman sorgunuzda olacaktır.
'posts_per_page=5'