2017-08-09 102 views
0

我在WordPress的自定義模板創建分頁和不斷得到一個404點擊除了第1頁。我能順利拿到每一頁分頁鏈接的所有其他頁面時,但如前所述,保持返回404爲分頁查詢WP不工作

這裏是我打電話了分頁功能,生活在functions.php中:

function custom_page_navi($totalpages, $page, $end_size, $mid_size) 
{ 
    $bignum = 999999999; 

    if ($totalpages <= 1 || $page > $totalpages) return; 

     //NOTE: https://codex.wordpress.org/Function_Reference/paginate_links 
    return paginate_links(array(
     'total'   => $totalpages, 
     'prev_next'  => false, 
     'type'   => 'list', 
     'show_all'  => false, 
     'end_size'  => $end_size, 
     'mid_size'  => $mid_size 
    )); 
} 

這裏是住在分類學pagename.php代碼:

<?php 

$this_page_taxonomy = $wp_query->get_queried_object(); //getting this page terms 
$current_slug = $this_page_taxonomy->slug; //current slug 
$go_cpt = 'hope_go'; //taxonony name 
$number = 1; // number of terms to display per page 

// Setup for pagination: 

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$offset = ($paged > 0) ? $number * ($paged - 1) : 1; 
$totalposts = $this_page_taxonomy->count; 
$totalpages = ceil($totalposts/$number); 

$hope_go_args = array(
'post_type' => $go_cpt, 
'orderby' => 'meta_value', 
'meta_key' => 'hope_go_series_date', 
'meta_value' => $time, 
'meta_compare' => '>=', 
'paged' => $paged, 
'order' => 'ASC', 
'posts_per_page' => $number, 
'hierarchical' => true, 
'offset' => $offset, 
'tax_query' => array(
    array(
    'taxonomy' => 'hope_go_series', 
    'field' => 'slug', 
    'terms' => $current_slug, 
    ) , 
) 
); 

$hope_go_recent_posts = new WP_Query($hope_go_args); 

if ($hope_go_recent_posts->have_posts()): 

    while ($hope_go_recent_posts->have_posts()): 
    $hope_go_recent_posts->the_post(); 

    printf('<nav class="recent-series__pagination">%s</nav>', 
    custom_page_navi($totalpages, $paged, 3, 0) < ? php 

    //Content would go here 

    endwhile; 

?> 

<?php 

else : ?> 

    <p><?php _e('Sorry, no posts matched your criteria.'); ?> </p> 

<?php 
endif; 

wp_reset_postdata(); 

?> 

我試過重寫,但那不是問題。看起來好像除了第1頁以外的所有頁面都不能在相應的帖子中拉動。任何有關這方面的見解將不勝感激!

回答

0

請通過下面的步驟獲得分頁

只需在您的模板的functions.php添加以下代碼或添加在任何你需要的分頁的腳本。

第1步

$customPagHTML  = ""; 
$query    = "SELECT * FROM custom_table"; 
$total_query  = "SELECT COUNT(1) FROM (${query}) AS combined_table"; 
$total    = $wpdb->get_var($total_query); 
$items_per_page = 4; 
$page    = isset($_GET['cpage']) ? abs((int) $_GET['cpage']) : 1; 
$offset   = ($page * $items_per_page) - $items_per_page; 
$result   = $wpdb->get_results($query . " ORDER BY field DESC LIMIT ${offset}, ${items_per_page}"); 
$totalPage   = ceil($total/$items_per_page); 

然後上面的腳本已經「custom_table」,你需要與你的表名,你也必須選擇添加ORDER BY或GROUP BY等等,用以代替然後,只需遍歷「 $結果」有你的查詢結果

步驟2

if($totalPage > 1){ 
$customPagHTML  = '<div><span>Page '.$page.' of '.$totalPage.'</span>'.paginate_links(array(
'base' => add_query_arg('cpage', '%#%'), 
'format' => '', 
'prev_text' => __('&laquo;'), 
'next_text' => __('&raquo;'), 
'total' => $totalPage, 
'current' => $page 
)).'</div>'; 
} 

步驟3

echo $customPagHTML; 

然後簡單的輸出$ customPagHTML變量在任何你需要像上面的分頁。

+0

謝謝!我現在會試試,但是用我的表名替換「custom_table」是什麼意思?我如何得到我的表名? – bhood

+0

wp_posts表與您的文章類型 – User7855069