Die Paginierung mit benutzerdefinierten Post-Typen führt zu 404-Problemen

Ich habe eine sehr einfache index.php :

 

Und meine content.php sieht ungefähr so ​​aus:

  ['articles', 'projects', 'tips'], 'orderby' => 'date', 'posts_per_page' => 7, 'paged' => $paged ]); ?>    

Es gibt insgesamt 14 Beiträge, aber die “nächsten” Beiträge werden immer auf 404 auf /page/2 umgeleitet, anstatt die restlichen 7 Beiträge anzuzeigen.

Edit: Wenn ich eine benutzerdefinierte WP_Query anstelle von query_posts die nächsten und vorherigen Links nicht query_posts . https://gist.github.com/elclanrs/4782705

Ich habe seit gestern versucht, eine Lösung für dieses Problem zu finden. Mir sind all die anderen Fragen ähnlich, aber ich habe für meine spezielle Einrichtung keine der Lösungen gefunden, die ich gefunden habe, einschließlich:

  • http://wordpress.org/support/topic/pagination-with-custom-post-type-listing
  • http://www.rjust.com/2011/03/22/fix-previous_posts_link-and-next_posts_link-for-custom-post-types/
  • posts_per_page Sie sicher, dass “Blog-Seiten höchstens posts_per_page ” mit posts_per_page

Ich kenne auch pre_get_posts aber ich würde gerne wissen, was das Problem mit meinem aktuellen Setup ist. Irgendwelche Ideen?

Solutions Collecting From Web of "Die Paginierung mit benutzerdefinierten Post-Typen führt zu 404-Problemen"

Zu dem Zeitpunkt, zu dem Sie die Vorlage erreichen, hat WordPress bereits die database abgefragt und entschieden, was basierend auf diesen Ergebnissen angezeigt werden soll.

Sie sehen einen 404-Fehler, da basierend auf der Standard-Hauptabfrage keine weiteren Posts angezeigt werden.

Wenn Sie query_posts in der Vorlage aufrufen, überschreiben Sie diese ursprüngliche Abfrage. Trotz der Tatsache, dass Ihre neuen Abfrageergebnisse mehr Beiträge enthalten, hat WordPress keine Kenntnis von dieser geänderten Abfrage.

Aus diesem Grund sollten Sie query_posts niemals in der Vorlage verwenden . Sie haben bereits die Lösung für Ihr Problem bereitgestellt. Verwenden Sie die Aktion pre_get_posts , um die pre_get_posts zu ändern, bevor sie pre_get_posts .