控制WordPress中paginate_links()的额外元素的输出

时间:2015-02-11 21:24:46

标签: php wordpress pagination wordpress-theming paginate

Spaces in red are the area i need to get rid of.

上图显示" Extra"我试图摆脱红色包围的信息与paginate _links()函数的结果。我希望它只显示当前页面编号,两边都有前一个和下一个按钮。我想删除最后一页和第一页链接的显示以及它们之前的省略号。我输出的当前代码如下。

    global $wp_query;

if ($total_pages > 1) {
    $current_page = max(1, get_query_var('paged'));
    $links = paginate_links(array(
        'base' => get_pagenum_link(1) . '%_%',
        'format' => '/page/%#%',
        'current' => $current_page,
        'total' => $wp_query->max_num_pages,
        'prev_text' => '<',
        'next_text' => '>',
        'mid_size' => 2,
        'type'  => 'array'
    ));
    foreach($links as $link){

    }
    echo $links;
}

我非常感谢任何帮助,我已经完全剖析了这个函数的文档,但无法理解。

1 个答案:

答案 0 :(得分:0)

如果有人来这里并在以后看这个,这就是我如何解决它。可能不是最好的方法,但它可以达到预期的效果。

我通过CSS隐藏了点,然后摆脱了第一页和最后一页链接,我称之为unset,我知道只有在需要删除它时才会这样。

global $wp_query;

if ($wp_query->max_num_pages > 1) {
    $current_page = max(1, get_query_var('paged'));
    $links = paginate_links(array(
        'base' => get_pagenum_link(1) . '%_%',
        'format' => '/page/%#%',
        'current' => $current_page,
        'total' => $wp_query->max_num_pages,
        'prev_text' => '<',
        'next_text' => '>',
        'mid_size' => 2,
        'type' => 'array'
    ));
    if($current_page > 3){
        unset($links[1]);
    }
    if($current_page <= $wp_query->max_num_pages - 3){
        unset($links[count($links) - 1]);
    }
    foreach ($links as $link) {
        echo $link;
    }

}