Saya menggunakan pre_get_posts
untuk menyesuaikan jumlah posting yang ditampilkan di beranda saya.
function lifelounge_query_adjust( $query ) {
if ( is_home() ) {
set_query_var( 'posts_per_page', 12 );
return;
}
}
add_filter( 'pre_get_posts', 'lifelounge_query_adjust' );
Tapi saya mengalami masalah dengan posting yang lengket. Pada dasarnya, jika saya memiliki posting yang lengket, kueri akan menampilkan lebih dari 12 posting yang telah saya tentukan, karena akan menampilkan 12 ditambah setiap posting yang lengket. Tentu saja saya bisa mengabaikan posting yang lengket:
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' );
Tapi saya rasa ini tidak ideal. Saya pikir posting lengket harus dimasukkan dalam batas 12 posting, dan tidak ditambahkan ke batas. Itulah yang paling masuk akal bagi saya. Apakah ada cara untuk mencapainya? Sudahkah saya membuat kesalahan yang layak pada wajah?
Cukup banyak duplikat: Tulisan Tempel & Posting Per Halaman tetapi anehnya ditutup karena terlalu terlokalisasi. Saya tidak setuju, jelas karena saya sedang mencari jawaban, tetapi juga karena itu adalah pertanyaan mengapa WordPress tampaknya tidak menghormati posts_per_page
batas jika Anda menggunakan posting yang lengket. Jika Anda ingin 12 posting per halaman Anda harus mendapatkan 12, bukan 13, yang adalah apa yang akan Anda dapatkan jika Anda memiliki satu posting lengket.
$sticky_count + (12 - $sticky_count)
ke12- $sticky_count
sekalipun. Sebagai contoh jika saya memiliki 1 sticky, maka matematika Anda masih bekerja sampai 12, dan kemudian WP menambahkan sticky post menjadi 13. Oh, dan jikaif ($sticky_count > $posts_per_page)
dan kami menetapkan ke 12, bukankah itu berarti kami akan menampilkan 24+?