2017-07-05 11 views
0

完璧に動作するカスタムポストタイプで作業しています。すべてのカスタム投稿が表示されますが、正しく動作するようにページングを取得することはできません。wordpressカスタムポストタイプのループがページ設定で機能しない

私が次のページをクリックすると、そのページは/ page/2 /にリダイレクトされ、実行されません。

今まで私は実用的なソリューションをオンラインで見つけることができませんでした。なぜこれが機能しないのですか?

ここで私が使用するコードです:

$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; 

答えて

0

あなたはページネーションのためにこのコードを書くことができます。

$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 »'), 
     )); 
    } 

別のオプションは、あなたがあなたのfunction.phpに

function custom_rewrite_basic() { 
    add_rewrite_rule('^leaf/([0-9]+)/?', 'index.php?page_id=$matches[1]', 'top'); 
} 
add_action('init', 'custom_rewrite_basic'); 
を書き換えルールを追加することができますです

要件に応じて変更してから、それをフラッシュしてください

<?php flush_rewrite_rules($hard); ?> 

は、詳細については、あなたはWordPressのドキュメントについては、このリンクを参照できます。 https://codex.wordpress.org/Rewrite_API/add_rewrite_rule

・ホープ、この意志はあなたのソリューションを提供します。

カスタムポストページネーションのためにこのコードを書くことができます
+0

これは動作しますが、問題があります、この広告trallingがURLにスラッシュます.... site.com/projects//page/2 、site.com/projects///page/3など。 – user759235

+0

このように 'format' => 'page /%#%'を修正することができます。 –

+0

これを試しましたが、これは私に 'ページが見つかりません'というエラーを表示します – user759235

0

<?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

次のページをクリックすると、「ページが見つかりません」というエラーが表示されます – user759235