2017-08-09 78 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