it-swarm.asia

Bağlama bağlı olarak sayfa başına farklı yayın sayısı gösterin (ör. Ana sayfa, arama, arşiv)

Okuma Ayarlarında, tüm bağlamlarda gösterilen yazı sayısını etkileyen yazı sayısını ayarlamak için bir yer vardır. Bunun yerine ana sayfada belirli sayıda yayın ve arşiv, arama sonuçları vb. Sayfalarda farklı sayıda yayın göstermek istiyorum.

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

Bunu tema dosyalarını düzenleyerek ve buradaki sorgu parametrelerini değiştirerek yapabileceğimin farkındayım, ancak basit bir ayar sayfasına daha kolay erişmeyi tercih ederim. Uzun zaman önce, bunu yapan bir eklentiye rastladım, ancak şimdi bulamıyorum.

Bunu yapmak için bir eklenti, hatta aynı şeyi yapmak için functions.php içinde koyabileceğim bir işlev bilen var mı?

21
Doug

Bunu bir eklentide yapmanın en iyi yolunun pre_get_posts eylem kancası ile karşılaşıldığında aşağıdaki örnek işlevi çalıştırmak olduğuna inanıyorum. $wp_query nesnesi kullanılabilir, yani koşullu etiketleriniz kullanılabilir, ancak WordPress gönderileri almadan önce, sorguyu değiştirdiğiniz anlamına gelir, yani sorguyu değiştirdiğiniz anlamına gelir, sorguyu ilk çalıştırmadan önce, query_posts () kullanıldığında olduğu gibi ikinci bir sorgu eklemek yerine tema dosyası.

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

query_posts kullanarak özel bir döngü yapabilir ve is_home, is_archive, vb.

query_posts ile birlikte sadece basit bir if ifadesi

0
chrismccoy