2016-04-06 8 views
-1

Auf meiner Wordpress-Website habe ich zwei Kategorien: Nachrichten und Club. Wie stellen Sie die Anzahl der Beiträge pro Seite auf 10 für Nachrichten Kategorie und 4 Beiträge pro Seite für Club Kategorie?Wordpress - Wie man verschiedene Beiträge pro Seitenzahl für zwei verschiedene Kategorien einstellen?

I Anzahl der Beiträge pro Seite in den Einstellungen festgelegt haben> Reading bis 10 und Nachrichten funktioniert, wie ich will, aber nicht Club

Ich habe benutzerdefinierte Schleife in der Club-Kategorie, wo ich posts_per_page auf 4 gesetzt In Kategorie-Club.php habe ich

$args=array(
    'category_name'=>'club', 
    'post_type' => 'post', 
    'post_status' => 'publish', 
    'posts_per_page' => 4, 
    'orderby' => 'date', 
    'order' => 'desc', 
    'paged' => ((get_query_var('paged')) ? get_query_var('paged') : 1) 
); 

Aber es gibt ein Problem, wenn ich auf Seite 2 der Beiträge in dieser Kategorie wechseln. Ich bekomme 404 Fehler. Ich denke, es liegt daran, dass ich weniger als 10 Beiträge in dieser Kategorie habe.

Kann mir jemand sagen, was ich tun soll, damit die zweite und die nächste Seite funktionieren?

+0

Sie würden 2 Abfragen mit bestimmten Beitrag pro Seite und Kategorien festlegen erstellen haben. –

+0

in Nachrichten Kategorie Ich habe Standard-Schleife, und in der Kategorie-club.php habe ich Schleife mit Args oben – Mariusz

+0

Aber die Kategorien, in WP sind immer von 'index.php gezogen, so müssen Sie es dort zu beheben, nicht in einer separaten '.php' Datei. Sie könnten eine Seitenvorlage mit einer benutzerdefinierten Abfrage erstellen, aber dann können Sie sie nicht als Kategorien im Menü hinzufügen, aber Seiten ... –

Antwort

1

Sie sollten keine benutzerdefinierten Abfragen anstelle der Hauptabfrage ausführen. Sie führen immer zu mehr Problemen, und Paginierung ist immer einer von ihnen, wie Sie erfahren haben. Wenn Sie benutzerdefinierte Abfragen anstelle der Hauptabfrage ausführen, verlangsamt dies Ihre Seite, sodass es immer eine lose Situation ist.

Wenn Sie etwas in der Hauptabfrage ändern müssen, verwenden Sie pre_get_posts, um zu erreichen, was Sie brauchen. Sie können versuchen, die folgenden: (Denken Sie daran, auf den Standard Schleife zurück zu gehen in Ihrer Kategorie Seiten)

add_action('pre_get_posts', function ($q) 
{ 
    if ( !is_admin() // Only target the frontend 
     && $q->is_main_query() // Only target the main query 
     && is_category() // Only target category pages 
    ) { 
     if (is_category('news')) 
      $q->set('posts_per_page', 10); 

     if (is_category('club')) 
      $q->set('posts_per_page', 4); 
    } 
}); 
Verwandte Themen