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'       => __('&#60;'),
    'next_text'       => __('&#62;'),
    '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.

InformationsquelleAutor Roman Verner | 2017-02-12
Schreibe einen Kommentar