2017-07-05 1 views
0

Arbeiten mit einem benutzerdefinierten Beitragstyp, der perfekt funktioniert. Alle benutzerdefinierten Posts werden angezeigt, aber ich kann die Seitennummerierung nicht korrekt ausführen.WordPress benutzerdefinierte Beitragstyp Schleife funktioniert nicht mit Seitennummerierung

Sobald ich auf den nächsten klicke, wird die Seite auf/page/2/umgeleitet, was nicht exiting ist.

Bis jetzt konnte ich keine funktionierende Lösung online finden, warum funktioniert das nicht?

Hier ist der Code, den ich verwenden:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

$query = new WP_Query(array( 
    'post_type'  => 'projects', 
    'posts_per_page' => 5, 
    'paged'   => $paged         
)); 

// the loop 
if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); 

    the_title(); 

endwhile; 

    next_posts_link('← '.__('next' , 'ff') , $query->max_num_pages); 
    previous_posts_link('← '.__('prev' , 'ff') , $query->max_num_pages); 

    wp_reset_postdata(); 

endif; 

Antwort

0

Sie können diesen Code für Paginierung schreiben:

$total_pages = $query->max_num_pages; 

    if ($total_pages > 1){ 

     $current_page = max(1, get_query_var('paged')); 

     echo paginate_links(array(
      'base' => get_pagenum_link(1) . '%_%', 
      'format' => '/page/%#%', 
      'current' => $current_page, 
      'total' => $total_pages, 
      'prev_text' => __('« prev'), 
      'next_text' => __('next »'), 
     )); 
    } 

Eine weitere Option ist Sie Rewrite-Regel in Ihrem function.php hinzufügen

function custom_rewrite_basic() { 
    add_rewrite_rule('^leaf/([0-9]+)/?', 'index.php?page_id=$matches[1]', 'top'); 
} 
add_action('init', 'custom_rewrite_basic'); 

Ändern Sie es nach Ihren Anforderungen und dann spülen Sie es

<?php flush_rewrite_rules($hard); ?> 

Weitere Informationen können Sie auf diesen Link für Wordpress-Dokumentation: https://codex.wordpress.org/Rewrite_API/add_rewrite_rule

hoffe, dies wird Ihnen die Lösung gibt.

+0

Dies funktioniert, aber es ist ein Problem, das wird ad tralling auf die URL schlitzt .... site.com/projects//page/2 , site.com/projects///page/3 und so weiter. – user759235

+0

so können Sie 'format' ändern => 'page /% #%' wie folgt –

+0

Ich habe dies versucht, aber das wird mir eine 'Seite nicht gefunden' Fehler geben – user759235

0

Sie diesen Code für benutzerdefinierte Post Paginierung schreiben:

<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
if ($paged == "1") { 
    $query = new WP_Query(array( 
    'post_type'  => 'projects', 
    'posts_per_page' => 5, 
    'offset' => 0        
)); 
} else { 
    $offset = $paged * 5; 
    $offset = $offset - 5; 
    $query = new WP_Query(array( 
    'post_type'  => 'projects', 
    'posts_per_page' => 5, 
    'offset' => $offset         
)); 
} 

if ($query->have_posts()) : 
while ($query->have_posts()) : $query->the_post(); 
    /*Your Code */ 

endwhile; 
?> 
<div class="pagination-grp"> 
    <?php 
    $big = 999999999; // need an unlikely integer 
    //$i=1; 

    echo paginate_links(array(
     'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 
     'format' => '?paged=%#%', 
     'current' => max(1, get_query_var('paged')), 
     'prev_text' => __('<'), 
     'next_text' => __('>'), 
     'total' => $query->max_num_pages 

    )); 
    wp_reset_postdata(); 
    endif; 
    ?> 
</div> 
+0

Wenn ich auf die nächste Seite klicke, bekomme ich den Fehler 'Seite nicht gefunden' – user759235

Verwandte Themen