1

在我的 wordpress 博客中,我使用 wp paginate(默认插件)进行分页。我使用自定义查询来列出帖子。请看这个链接

一切正常。我每页显示六个帖子(管理员设置)并且页数是正确的。但我的问题是所有页面都显示在分页中。

即1|2|3|4|5|6|7|8|9|10|>,但我想要这样的|1|2|3|4|...|10|>。

我该怎么办,我是wordpress的新手。有人可以帮忙吗?

笔记:

  1. 没有对 wp paginate 插件进行任何修改。

  2. 还更改了后端(wp-admin)中的分页设置以显示当前页面的前后 3 页,但它不起作用。

我的 index.php 看起来像这样:

<?php 
    $paged = get_query_var('paged');
    $args = array(
    'post_type' => 'post',
    'meta_key'  => 'wpcf-fn',
    'orderby'   => 'meta_value',
    'order' =>  'ASC',
    'paged' => $paged
    );
    $cust_query = new WP_Query( $args );
    $temp = $wp_query;
    $wp_query = $cust_query;
?>
<div> *** contents rendered on the page *** </div>
<div id="navigation" class="clearfix">
    <?php if(function_exists('wp_paginate')) : wp_paginate(); ?>
</div>
<?php $wp_query = $temp;?>
4

1 回答 1

3
<?php
global $wp_query;

$big = 999999999; // need an unlikely integer

echo paginate_links( array(
    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    'format' => '?paged=%#%',
    'current' => max( 1, get_query_var('paged') ),
    'total' => $wp_query->max_num_pages,
    'show_all' => FALSE, //this will make paginate not to show all links.
    'end_size' => 2, //will show 2 numbers on either the start and the end list edges. 
    'mid_size' => 0 //so that you won't have 1,2...,3,...,7,8
) );
?>

更多细节:https ://developer.wordpress.org/reference/functions/paginate_links/

于 2013-07-06T12:57:42.843 回答