Warum Paginierung funktioniert nicht und gibt einen Fehler 404 auf der wordpress-Website?
Guten Tag! Das problem ist Folgendes: in der Vorlage-Kategorie(Archiv) der Seitenumbruch funktioniert nicht, wenn Sie auf Seite 2 der 404-Fehler.
Bitte helfen Sie nicht verstehen, wie es zu lösen, die bereits alle Kopf, brach
Meine Schleife:
<?php
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$arg = array(
'cat' => get_queried_object_id(),
'post_type'=>'post',
'posts_per_page'=>9,
//'order'=>'desc',
'paged' => $paged,
);
$query = new WP_query($arg);
if($query->have_posts()) : ?>
<section class="blog">
<?php
echo '<div class="row">';
$i=0;
$formcreated=false;
while( $query->have_posts() ) :
$query->the_post();
//display post
endwhile;
wp_reset_postdata();
endif;
?>
<div class="pagination">
<?php
if (function_exists('custom_pagination')) {
custom_pagination($query->max_num_pages,"",$paged);
}
?>
<?php wp_reset_postdata(); ?>
</div>
Und meine eigene Paginierung:
function my_post_queries( $query ) {
//do not alter the query on wp-admin pages and only alter it if it's the main query
if (!is_admin() && $query->is_main_query()){
//alter the query for the home and category pages
if(is_category()){
$query->set('posts_per_page', 1);
$query->set('post_type','product');
}
}
}
add_action( 'pre_get_posts', 'my_post_queries' );
function custom_pagination($numpages = '', $pagerange = '', $paged='') {
if (empty($pagerange)) {
$pagerange = 2;
}
/**
* This first part of our function is a fallback
* for custom pagination inside a regular loop that
* uses the global $paged and global $wp_query variables.
*
* It's good because we can now override default pagination
* in our theme, and use this function in default queries
* and custom queries.
*/
global $paged;
if (empty($paged)) {
$paged = 1;
}
if ($numpages == '') {
global $wp_query;
$numpages = $wp_query->max_num_pages;
if(!$numpages) {
$numpages = 1;
}
}
/**
* We construct the pagination arguments to enter into our paginate_links
* function.
*/
$pagination_args = array(
'base' => get_pagenum_link(1) . '%_%',
'format' => 'page/%#%',
'total' => $numpages,
'current' => $paged,
'show_all' => False,
'end_size' => 1,
'mid_size' => $pagerange,
'prev_next' => True,
'prev_text' => __('<'),
'next_text' => __('>'),
'type' => 'plain',
'add_args' => false,
'add_fragment' => ''
);
$paginate_links = paginate_links($pagination_args);
if ($paginate_links) {
echo "<nav class='custom-pagination'>";
echo $paginate_links;
echo "</nav>";
}
}
- Möglich, Duplikat der Paginierung auf benutzerdefinierte wp_query in WordPress braucht, um 404-Fehler-Seite
- stackoverflow.com/questions/22364294/...
- es scheint für meine ungeübten Augen, dass die heutige OP ist bereits mit diesem trick, zumindest teilweise, in den code, die wir hier sehen?
- Er hat Beiträge pro Seite 1 der zweite Satz von code, vermutlich in der functions.php und er hat 9 Beiträge pro Seite auf der Schleife args. Sehen Sie, dass die zahlen nicht übereinstimmen. Auch will er, um alle Kategorien haben die gleiche pagination oder nur der eine verwendet das benutzerdefinierte Schleife? Also muss er Bedingungen spezifischer als is_category und das überprüfen, um zu sehen, ob es nicht eingebaut (ein cpt) ist nicht die Art, wie Sie es tun.
- Okay. Ich sehe, was er meint. Wenn die Beiträge pro Seite in den Einstellungen Lesen die größer sind als die Beiträge, die in die benutzerdefinierte Abfrage, dann bekommen Sie eine 404. Ich beantworte diese Frage später heute.
- Ich aktualisiert meine Antwort mit pre_get_posts statt parse_query. Funktioniert besser, und jetzt können Sie Seitenumbrüche für das CPT und andere, wenn Sie wollen, für die Kategorien unter, die.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da diese kommen in zwei unterschiedlichen Foren in letzter Zeit, ich bin dies zu beantworten.
Wenn Sie benutzerdefinierte Paginierung, wie die, die Sie verwenden, die scheint zu kommen aus http://callmenick.com/post/custom-wordpress-loop-with-pagination aber es passiert mit Genesis child-themes zu, weil die Eltern nummeriert, die Paginierung ist das, was Menschen was.
Warum bekommt man eine 404-Seite? Die Benutzerdefinierte Paginierung in der callmenick.com und Genesis (genesis_posts_nav) ist für die main Abfrage und so, wenn die Seitenzählung für Ihre anderen Abfrage ist unter den posts pro Seite in Ihrem lese-Einstellungen (die für die Haupt-Abfrage), dann bekommen Sie eine 404-Seite 2.
Sie nicht sehen, diese Frage sehr, weil viele einfach nur bauen die Paginierung für die Schleife anstelle der re-Verwendung aus der functions.php Datei oder einem übergeordneten Thema. Sie können erfahren Sie hier: https://codex.wordpress.org/Function_Reference/paginate_links
Lassen Sie ' s start von der Spitze und, wenn Sie den code, schalten Sie debug in wp-config.php
Ein basic custom loop in meinem cpt-Archiv.
archive-product.php
In Ihrem functions.php Datei:
Lernen-Bedingungen.
https://codex.wordpress.org/Conditional_Tags
https://codex.wordpress.org/Function_Reference/is_post_type_archive
auf dem wp-include/functions.php
fügen Sie diese Zeilen