2017-07-12 87 views
0

我試圖讓分頁兩種文章類型這是一個自定義後類型question和正常post 首先,當我顯示所有結果without pagination使用'posts_per_page' => -1;結果的功能工作正常WordPress的wp_Query分頁定製post_type問題

enter image description here

,但問題發生時,我儘量讓分頁,你可以看到分頁功能正常工作,除了分頁(我猜其中包含的問題post_type甚至最近的支柱式結構問題出現的一些最後幾頁通常)

enter image description here

enter image description here

enter image description here

這裏你是我的全部代碼

<?php 

    $my_query = new WP_Query(
     array(
      'post_type' => array('question', 'post'), 
      'posts_per_page' => get_option('to_count_portfolio'), // -1 to show all results 
      'author' => $post->post_author, 
      'paged' => get_query_var('paged') ? get_query_var('paged') : 1 
     ) 
    ); 


?> 
<?php 
    while ($my_query->have_posts()) : $my_query->the_post(); 
?> 

<span class="title"> 
    <?php echo get_post_type(); ?> 
    <a href="<?php the_permalink(); ?>"> 
    <?php the_title(); ?> 
    </a> 
</span> 
<br /> 

<?php endwhile; ?> 
<?php 
    $big = 999999999; // need an unlikely integer 
    echo paginate_links(
     array(
      'base' => str_replace($big, '%#%', get_pagenum_link($big)), 
      'format' => '?paged=%#%', 
      'current' => max(1, get_query_var('paged')), 
      'total' => $my_query->max_num_pages 
     ) 
    ); 
?> 

我怎樣才能讓分頁正常工作,並導航到所有分頁鏈接?

回答

2

替換您的代碼如下:

<?php 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
    if ($paged == "1") { 
    $args = array(
      'post_type' => array('question', 'post'), 
      'posts_per_page' => get_option('to_count_portfolio'), // -1 to show all results 
      'author' => $post->post_author, 
      'offset' => 0 
    ); 
} else { 
    $offset = $paged * 5; 
    $offset = $offset - 5; 
    $args = array(
      'post_type' => array('question', 'post'), 
      'posts_per_page' => get_option('to_count_portfolio'), // -1 to show all results 
      'author' => $post->post_author, 
      'offset' => $offset 
    ); 
} 

$loop = new WP_Query($args); 
?> 
<?php 
    if ($loop->have_posts()) :while ($loop->have_posts()) : $loop->the_post(); 
?> 

<span class="title"> 
    <?php echo get_post_type(); ?> 
    <a href="<?php the_permalink(); ?>"> 
    <?php the_title(); ?> 
    </a> 
</span> 
<br /> 

<?php 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' => $loop->max_num_pages 

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

謝謝@Arpan我改變我的代碼與你的,但我仍然相同404 last for the page –

1
install this free plugin https://wordpress.org/plugins/wp-pagenavi/ 
then refer below code 

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

$args = array (
    'post_type'    => 'post', 
    'cat'     => '53', 
    'paged' => $paged, 
    'posts_per_page'   => '10', 
); 

// The Query 
$query = new WP_Query($args); 

// The Loop 
if ($query->have_posts()) { 
    while ($query->have_posts()) { 
     $query->the_post(); 
     get_template_part('parts/bl`enter code here`ogloop'); 

    } 


    if(function_exists('wp_pagenavi')) 
     { 
      wp_pagenavi(array('query' => $query)); 
     } 

    wp_reset_postdata(); 

} else { 
    echo 'no posts here'; 
} 

這將顯示分頁和喜歡你一個魅力的工作。

+0

謝謝@prashant,我更喜歡自己做這個,沒有額外的插件,或者至少創建我自己的插件 –

0

我想我弄明白 的解決方法是編輯WP_Query參數傳遞給可以自定義數字這是不一樣的網站posts_per_page

'posts_per_page' => 11, // 13, or 20 ... 

代替

'posts_per_page' => get_option('to_count_portfolio'), 

爲什麼?我不知道,也許這是某種衝突 有人可以試試看,看看這個解決方案是否與我一樣工作