Php 为wordpress后期分页添加一个范围

Php 为wordpress后期分页添加一个范围,php,wordpress,loops,pagination,Php,Wordpress,Loops,Pagination,我有一些很长的帖子,一些有超过50页()当使用wp_link_页面时,它会给我50个内部帖子链接,显然这是不可用的 我需要为wp_link_pages函数添加一个范围,因为现在我们输出50个分页链接 输出应该如下所示:…45*6*78 我已经有了添加范围的逻辑,但现在我需要弄清楚如何将其添加到现有的wp_link_pages函数中 以下是示例函数: function limitPagination(){ $displayPages = 5; $firstPage = 1;

我有一些很长的帖子,一些有超过50页()当使用wp_link_页面时,它会给我50个内部帖子链接,显然这是不可用的

我需要为wp_link_pages函数添加一个范围,因为现在我们输出50个分页链接

输出应该如下所示:…45*6*78

我已经有了添加范围的逻辑,但现在我需要弄清楚如何将其添加到现有的wp_link_pages函数中

以下是示例函数:

function limitPagination(){
    $displayPages = 5;
    $firstPage = 1;
    $lastPage = $numpages > 5;

    while($numpages > $displayPages){
        if(($pageNow > $firstPage +2) && ($pageNow < $lastPage - 2)){
            echo (($pageNow - 2).($pageNow - 1).$pageNow.($pageNow + 1).($pageNow + 2));
        }
    }
}
函数限制分页(){
$displayPages=5;
$firstPage=1;
$lastPage=$numpages>5;
而($numpages>$displayPages){
如果($pageNow>$firstPage+2)和($pageNow<$lastPage-2)){
回声($pageNow-2)。($pageNow-1)。$pageNow($pageNow+1)。($pageNow+2));
}
}
}
这是我需要添加示例函数的函数:

// Add prev and next links to a numbered link list

function custom_wp_link_pages( $args = '' ) {
    $defaults = array(
        'before' => '<p id="post-pagination">' . __( 'Pages:' ), 
        'after' => '</p>',
        'text_before' => '',
        'text_after' => '',
        'next_or_number' => 'number', 
        'nextpagelink' => __( 'Next page' ),
        'previouspagelink' => __( 'Previous page' ),
        'pagelink' => '%',
        'echo' => 1
       );

    $r = wp_parse_args( $args, $defaults );
    $r = apply_filters( 'wp_link_pages_args', $r );
    extract( $r, EXTR_SKIP );

    global $page, $numpages, $multipage, $more, $pagenow;

    $output = '';
    if ( $multipage ) {
        if ( 'number' == $next_or_number ) {
            $output .= $before;
            for ( $i = 1; $i < ( $numpages + 1 ); $i = $i + 1 ) {
                $j = str_replace( '%', $i, $pagelink );
                $output .= ' ';
                if ( $i != $page || ( ( ! $more ) && ( $page == 1 ) ) )
                    $output .= _wp_link_page( $i );
                else
                    $output .= '<span class="current-post-page">';

                $output .= $text_before . $j . $text_after;
                if ( $i != $page || ( ( ! $more ) && ( $page == 1 ) ) )
                    $output .= '</a>';
                else
                    $output .= '</span>';
                }
        $output .= $after;
            } else {
                if ( $more ) {
                    $output .= $before;
                    $i = $page - 1;
                    if ( $i && $more ) {
                        $output .= _wp_link_page( $i );
                        $output .= $text_before . $previouspagelink . $text_after . '</a>';
                        }
                        $i = $page + 1;
                        if ( $i <= $numpages && $more ) {
                           $output .= _wp_link_page( $i );
                           $output .= $text_before . $nextpagelink . $text_after . '</a>';
                        }
                        $output .= $after;
                    }
                }
            }
        if ( $echo )
        echo $output;
        return $output;
}
//将上一个和下一个链接添加到编号的链接列表中
函数自定义页面($args=''){
$defaults=数组(
'在'=>'之前

。uu('Pages:'), '在'=>'之后

', 'text_在'=>''之前, “=>”之后的“文本”, '下一个\u或\u编号'=>'编号', “下一页”=>(“下一页”), “previouspagelink”=>(上一页), “页面链接”=>“%”, “echo”=>1 ); $r=wp\u parse\u args($args,$defaults); $r=应用过滤器('wp\U链接\U页面\U参数',$r); 摘录($r,EXTR_SKIP); 全局$page、$numpages、$multipage、$more、$pagenow; $output=''; 如果($multipage){ 如果('number'=$next\u或\u编号){ $output.=$before; 对于($i=1;$i<($numpages+1);$i=$i+1){ $j=str_replace(“%”,$i,$pagelink); $output.=''; 如果($i!=$page | |(!$more)&&($page==1))) $output.=\u wp\u link\u页面($i); 其他的 $output.=''; $output.=$text\u前。$j.$text\u后; 如果($i!=$page | |(!$more)&&($page==1))) $output.=''; 其他的 $output.=''; } $output.=$after; }否则{ 如果(更多美元){ $output.=$before; $i=$page-1; 如果($i&&$more){ $output.=\u wp\u link\u页面($i); $output.=$text_之前。$previouspagelink.$text_之后。“; } $i=$page+1;
如果($i目标函数中的钩子是:

$r = apply_filters( 'wp_link_pages_args', $r );

这意味着运行你的
limitPagination
函数,你挂接到
wp\u link\u pages\u args
。这也意味着你的
limitPagination
函数必须接受
$r
作为参数,并返回一个修改过的
$r
,而不是回显输出。

我很难理解逻辑是如何运行的rks在这里。因此,我在修改后的$r中返回的是新数组,其中包含下一个\u或\u编号的附加参数。请看这篇关于WP筛选器的文章:本质上,如果字符串进入筛选器,则必须输出字符串;如果数组进入,则输出数组。在您的情况下,
$r
是一个数组。是的,您可以添加更多的argu我对它很感兴趣。