2017-02-23 94 views
2

我已經建立了一個基本的主頁,每頁顯示3篇文章,並通過分頁瀏覽這些頁面。目前它只會顯示頁面1 & 2的分頁,即使我有12篇文章會導致4頁。我不太確定我要去哪裏錯在這裏:WordPress的分頁只顯示2頁

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

    $args = array(
     'post_type'   => 'post', 
     'post_status'  => 'publish', 
     'paged'    => $paged, 
     'posts_per_page' => 2 
    ); 
    $the_query = new WP_Query($args); 
    while ($the_query -> have_posts()) : $the_query -> the_post(); 

     include(locate_template('content-post.php')); 

    endwhile; 
?> 

<?php the_posts_pagination(array('mid_size' => 3)); ?> 

Dummy posts

回答

1

the_posts_pagination使用默認的WP查詢,以取代

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

所以它不會在這裏工作。你可以請嘗試以下代碼:

<?php 
    if (get_query_var('paged')) { $paged = get_query_var('paged'); } else if (get_query_var('page')) {$paged = get_query_var('page'); } else {$paged = 1; } 

    $args = array(
     'post_type'   => 'post', 
     'post_status'  => 'publish', 
     'paged'    => $paged, 
     'posts_per_page' => 2 
    ); 
    $temp = $wp_query; 
    $wp_query= null; 
    $wp_query = new WP_Query($args); 
    while ($wp_query -> have_posts()) : $wp_query -> the_post(); 
     include(locate_template('content-post.php')); 
    endwhile; 


    the_posts_pagination(array('mid_size' => 3)); 

    $wp_query = null; 
    $wp_query = $temp; 
    wp_reset_query(); 
?> 

守則工作完美測試。

+0

因此,可以獲得分頁鏈接的相關工作,然而,超過2的任何頁面將直接到404。 '/ page/2 /'可以正常工作,但是'/ pages/3 /'會生成一個404. – Jam3sn

+0

檢查我的更新回答 –

+0

謝謝,但它仍然是一樣的,分頁適用於第1-2頁,然後3頁以上404頁。 – Jam3sn

0

使用這個插件Click here

,並使用此短代碼分頁<?php wp_pagenavi(); ?>

我用確切以下循環爲我的項目和它的工作。

<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args= array(
'cat' => '', 
'orderby'=> 'date', 
'order'=> 'DESC', 
'paged' => $paged , 
'posts_per_page' => 3 
); 
query_posts($args); 
if (have_posts()) : 
    while (have_posts()): 
    the_post(); 
    endwhile; 
endif; 
?> 

請試試看。希望它也能爲你工作。

而且如果要顯示主頁上您的文章,您需要

<?php 

if (get_query_var('paged')) 
    { 
     $paged = get_query_var('paged'); 
    } 
else if (get_query_var('page')) 
    { 
     $paged = get_query_var('page'); 
    } 
    else 
    { 
     $paged = 1; 
    } 
+0

這很棒,但它仍然只在分頁顯示2頁。 – Jam3sn