2016-08-05 23 views
0

Ich erstelle mein benutzerdefiniertes Thema und es gibt auch einen benutzerdefinierten Beitragstyp. Die Seitennummerierung für den benutzerdefinierten Beitragstyp funktioniert jedoch nicht. Ich habe versucht, alle möglichen Lösung von Stack Overflow, aber alles vergebens.Benutzerdefinierter Beitragstyp Seitennummerierung funktioniert nicht

Hier ist der Code:

<?php global $wp_query;     
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
     $args = array( 
      'posts_per_page' => 3, 
      'post_type' => 'services', 
      'orderby' => 'date', 
      'order' => 'DESC', 
      'nopaging' => false, 
      'paged'=>$paged 
     ); 
    $the_query = new WP_Query($args); ?> 


<div class="service-content clearfix"> 
    <ul class="clearfix"> 
    <?php if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); ?> 
     <?php $word_count = strlen(wp_strip_all_tags($post->post_content)); 
      $id = get_the_ID();?>     
     <li class="col-sm-4 wow fadeInDown animated" data-wow-delay="300ms" data-wow-duration="500ms"> 
      <figure class="image"> 
       <?php the_post_thumbnail('medium'); ?> 
      </figure> 
      <?php if($word_count<269){ ?> 
       <h3><?php echo $post->post_title; ?></h3> 
       <p><?php echo $post->post_content; ?></p> 
      <?php } else{ ?> 
      <h3><?php echo $post->post_title; ?></h3> 
       <?php echo $post->post_content; ?> 
       <?php } ?>             
     </li> 
     <?php endwhile; 
      next_posts_link(); 
      previous_posts_link();?> 
     <?php wp_reset_query(); ?> 

<?php endif; ?> 
    </ul> 
</div> 

Hier posts_per_page arbeitet aber Pagination nicht funktioniert, jede mögliche Hilfe?

Antwort

1

Bitte benutzen Sie unten Codes als Ihre Notwendigkeit ..

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$next = $paged+1; 
$prev= $paged-1; 
<a href="<?php echo '/page/'.$next; ?>" >NEXT</a> 
<a href="<?php echo '/page/'.$prev; ?>" >PREV</a> 
+0

Nun, es zeigt nur die nächsten und vorherigen Links. Es tut nichts:/ –

1

Gerade paginate_links Funktion

verwenden, um die Paginierung anzuzeigen, basierend auf Ihrer Anfrage und Paging

$paginate_args = array(
    'base'    => '%_%', 
    'format'    => '?paged=%#%', 
    'total'    => $the_query ->max_num_pages, 
    'current'   => $paged, 
    'prev_text'   => __('«'), 
    'next_text'   => __('»'), 
); 

echo paginate_links($paginate_args); 

Achten Sie darauf, die base und format sind korrekt. basierend auf Ihrer Permalink-Struktur

+0

Der Paginierungslink zeigt als 'http: // localhost/mysite /? Paged = 2', was beim nächsten Klick Fehler verursacht. Ist es wegen "Base" oder "Format"? –

+0

versuchen, das Format in ''% #% '' '' '' '' /% #% '' ' – silver

+0

Was ist die URL der Seite, die Sie diese Schleife haben? was ist die zweite Seite? Kannst du über direkte URL darauf zugreifen? – silver

1

Eines der Probleme, mit Paginierung in Wordpress ist, dass die Beiträge pro Seite Wert ignoriert und die Blog-Seiten zeigen höchstens Einstellung in der Leseseite der Wordpress-Einstellungen als Ist-Wert genommen wird . Also, Sie versuchen, 3 pro Seite und auf der ersten Seite zu zeigen, die funktioniert. Wenn Sie jedoch auf die zweite Seite gehen, lädt Wordpress einen anderen Offset, damit Ihr Code nicht funktioniert.

Dieses Problem wurde auf dem Wordpress Stack Exchange sehr gut erklärt, so dass ich die Antwort dieses Benutzers nicht wiederholen werde. Sie können mehr hier lesen:

https://wordpress.stackexchange.com/questions/30757/change-posts-per-page-count

, dass das Problem für Sie in Ordnung bringen sollte.

+0

hmm, funktioniert es auch auf Custom Post Type? Naja, ich wechselte zum Blogbeitrag pro Lese auf 3, immer noch keine Änderung. –

+0

Werden die paginations-Links mit next_posts_link und previous_posts_link angezeigt? Wenn ja, was passiert, wenn Sie auf einen nächsten/vorherigen Link klicken? –

+0

Ja Paginierungslinks werden gerade als 'http: // localhost/mysite/page/2 /' angezeigt, aber wenn ich auf o next link klicke, wird die Seite nicht gefunden –