分页使用‘MID_SIZE’=>0时添加页码圆点

时间:2016-04-23 作者:Simon Hayter

嘿,大家好,我正在尝试转换当前分页:

来自:Prev 1 2 3 Next Page 1 of 2 -->

if( ! function_exists( \'my_pagination\' ) ) {
    function my_pagination() {
        global $wp_query;    
        $big = 999999999; // This needs to be an unlikely integer
        $paginate_links = paginate_links( array(
            \'base\' => str_replace( $big, \'%#%\', get_pagenum_link($big) ),
            \'current\' => max( 1, get_query_var(\'paged\') ),
            \'total\' => $wp_query->max_num_pages,
            \'mid_size\' => 0,
            \'prev_next\' => True,            
            \'prev_text\' => __(\'<span class="fa fa-long-arrow-left" aria-hidden="true"></span>\'),
            \'next_text\' => __(\'<span class="fa fa-long-arrow-right" aria-hidden="true"></span>\'),
            \'type\' => \'list\'
        ) );
        if ( $paginate_links ) {
            echo \'<div class="pagination">\';
            echo $paginate_links;
            echo \'</div>\';
        }
    }
}
也就是说,到目前为止,我在WordPress中处理分页方面还没有太多经验。我想我会让自己变得简单,只需将\\u大小更改为0,然后在前后使用CSS添加page of, 像这样:

.pagination li:first-child:before {
    content: "Page "
}

.pagination li:first-child:after {
    content: " of"
}
但我注意到WordPress正在插入:

<li><span class="page-numbers dots">…</span></li>
因为\'mid_size\' => 0, 显然我可以li:nth(2) { display: none; } 在CSS中。但另一个问题是最后一页的页码是a href 这也是我不想要的,所以使用所有这些变通方法似乎是一项拙劣的工作,而不是在法典中而不是CSS中进行。我尝试了几种解决方案,但都没有成功。

如何禁用添加:

  • <span class="page-numbers dots">…</span>?
  • <a href> 在最后一页的编号上

1 个回复
最合适的回答,由SO网友:birgire 整理而成

这里有一个解决方法:

首先更改paginate_links() 输出类型至:

\'type\' => \'array\',
然后,我们可以从paginate_links() 输出

下面是一个简单的示例,我们以相关类为目标:

$next       = \'\';
$current    = \'\';
$prev       = \'\';
foreach( (array) $paginate_links as $link )
{           
    if( false !== strpos( $link, \'prev \' ) )
        $prev = $link;
    elseif( false !== strpos( $link, \' current\' ) )
        $current = $link;       
    elseif( false !== strpos( $link, \'next \' ) )
        $next = $link;
}
最后,我们可以根据需要构建输出:

! empty( $current ) && printf(
    \'<div class="pagination">%s %s %s %s %d %s</div>\',
    $prev,
    esc_html__( \'Page\', \'my-domain\' ),
    $current,
    esc_html__( \'of\', \'my-domain\' ),
    $wp_query->max_num_pages,
    $next
);

相关推荐

自定义“The_Posts_Pagination”并将列表放入div

Hello everybody, 我需要有关自定义wordpress分页的帮助。我想得到这个:这就是我所做的:在函数中。php,我添加了以下代码:function wp_custom_pagination($args = [], $class = \'pagination\') { if ($GLOBALS[\'wp_query\']->max_num_pages <= 1) return; $args = wp_parse_args( $args,