pre_get_posts
Ana sayfamda görüntülenen yayın sayısını ayarlamak için kullanıyorum .
function lifelounge_query_adjust( $query ) {
if ( is_home() ) {
set_query_var( 'posts_per_page', 12 );
return;
}
}
add_filter( 'pre_get_posts', 'lifelounge_query_adjust' );
Ama yapışkan mesajlarda sorun yaşıyorum. Temel olarak, eğer herhangi bir yapışkan yazı varsa, sorgu belirttiğim 12 yazıdan daha fazlasını gösterecektir, çünkü 12 artı herhangi bir yapışkan yazı gösterecektir . Elbette, yapışkan mesajları görmezden gelebilirim:
function lifelounge_query_adjust( $query ) {
if ( is_home() ) {
set_query_var( 'posts_per_page', 1 );
set_query_var( 'ignore_sticky_posts', 1 );
return;
}
}
add_filter( 'pre_get_posts', 'lifelounge_query_adjust' );
Ama bunun ideal olduğunu sanmıyorum. Yapışkan postaların 12 posta sınırına dahil edilmesi gerektiğini ve bu sınıra eklenmemesi gerektiğini düşünüyorum. Benim için en mantıklı olan bu. Bunu başarmanın bir yolu var mı? Avuç içi kadar değerli bir hata mı yaptım?
Neredeyse bir kopyası: Sayfa Başına Yapışkan Gönderiler ve Gönderiler ancak bu çok yerelleştirilmiş olarak garip bir şekilde kapandı. Açıkçası bir cevap aradığım için değil, aynı zamanda yapışkan yazılar kullanıyorsanız WordPress'in neden posts_per_page
sınıra saygı göstermediği sorusu olduğu için aynı fikirde değilim . Sayfa başına 12 yazı istiyorsanız, 13'e değil 12'ye, bir tek yapışkan yazı olsaydı elde edeceğinize sahip olmalısınız.
$sticky_count + (12 - $sticky_count)
için12- $sticky_count
gerçi. Örneğin, 1 yapışkanlığım varsa, matematiğiniz hala 12'ye kadar çalışır ve WP yapışkan yazıyı 13 yapmak için ekler. Oh, ve eğerif ($sticky_count > $posts_per_page)
12'ye set edersek, bu 24 + 'ı göstereceğimiz anlamına gelmez mi?