Paginierung 404 auf Index mit benutzerdefinierter Abfrage

Auf meinem WordPress-Index verwende ich eine benutzerdefinierte Abfrage:

$paged = (get_query_var('page')) ? get_query_var('page') : 1; $project_query = new WP_query(array( 'post_type' => 'project', 'paged' => $paged, 'posts_per_page' => 5 )); 

Ich verwende wp-paginate, um die Seitennummerierung einzurichten, aber unabhängig davon, sobald ich versuche, zur nächsten Seite zu gehen, zB: http://domain/page/2 erhalte ich einen 404-Fehler.

Ich kann wirklich nicht für das Leben von mir herausfinden, was passiert. Ich habe die WordPress-Leseoption auf die gleiche Nummer eingestellt, und meine Permalink-Struktur ist auf Post name .

Alle Tipps sehr geschätzt, ich weiß Paginierung 404 sind ein häufiges Problem mit vielen Menschen, aber ich habe nicht in der Lage, jemanden zu finden, der das gleiche Problem mit dem Index hatte.

Solutions Collecting From Web of "Paginierung 404 auf Index mit benutzerdefinierter Abfrage"

Ob eine Seite existiert oder nicht, oder ein 404-Ergebnis vorliegt, wird basierend auf den Ergebnissen der Hauptabfrage entschieden, die vor dem Laden der Vorlage erfolgt. WordPress ist sich Ihrer benutzerdefinierten Abfrage nicht bewusst, es ist von der Hauptabfrage getrennt und passiert nur, wenn die Hauptabfrage zum Laden der Vorlage führt, die diese enthält.

Anstatt diese benutzerdefinierte Abfrage zu erstellen, können Sie die Hauptabfrage ändern, bevor sie über die Aktion pre_get_posts an die database pre_get_posts . Dieser Code würde in die functions.php Datei Ihres Themes gehen:

 function wpa_front_page_projects( $query ) { if ( $query->is_front_page() && $query->is_main_query() ) { $query->set( 'post_type', array( 'project' ) ); $query->set( 'posts_per_page', 5 ); } } add_action( 'pre_get_posts', 'wpa_front_page_projects' );