it-swarm-id.com

Tampilkan jumlah posting yang berbeda per halaman tergantung pada konteks (mis., Beranda, pencarian, arsip)

Di Pengaturan Membaca, ada tempat untuk mengatur jumlah posting yang ditampilkan yang mempengaruhi jumlah posting yang ditampilkan dalam semua konteks. Sebagai gantinya, saya ingin menampilkan sejumlah posting tertentu di beranda, dan sejumlah posting berbeda di halaman seperti arsip, hasil pencarian, dll.

reading-settings-blog-pages-show-at-most-per-page

Saya sadar saya bisa melakukan ini dengan mengedit file tema dan mengubah parameter kueri di sana, tetapi saya lebih suka memiliki akses yang lebih mudah ke halaman pengaturan yang sederhana. Dahulu kala, saya menemukan sebuah plugin yang melakukan ini, tetapi saya tidak dapat menemukannya sekarang.

Adakah yang tahu tentang plugin untuk melakukan ini, atau bahkan sebuah fungsi yang saya bisa masukkan ke functions.php untuk mencapai hal yang sama?

21
Doug

Saya percaya cara terbaik untuk melakukan ini dalam sebuah plugin adalah dengan menjalankan fungsi sampel berikut ketika kait tindakan pre_get_posts ditemukan. Objek $wp_query tersedia, artinya tag kondisional Anda tersedia, tetapi sebelum WordPress mendapatkan kiriman, yang berarti Anda mengubah vars kueri sebelum kueri pertama dijalankan, alih-alih menambahkan kueri kedua seperti ketika kueri_posts () digunakan dalam file tema.

function custom_posts_per_page($query) {
    if (is_home()) {
        $query->set('posts_per_page', 8);
    }
    if (is_search()) {
        $query->set('posts_per_page', -1);
    }
    if (is_archive()) {
        $query->set('posts_per_page', 25);
    } //endif
} //function

//this adds the function above to the 'pre_get_posts' action     
add_action('pre_get_posts', 'custom_posts_per_page');
23
kevtrout

anda dapat melakukan loop kustom menggunakan query_posts, dan menentukan jumlah posting oleh is_home, is_archive, dll.

hanya pernyataan if sederhana bersama dengan query_posts

0
chrismccoy