簡體   English   中英

將范圍添加到wordpress分頁

[英]Add a range to wordpress post pagination

我有一些很長的帖子,有些有超過50個pages(),使用wp_link_pages時,它給了我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));
        }
    }
}

這是我需要將示例函數添加到的函數:

// 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;
}

目標函數中的鈎子是這樣的:

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

這意味着要運行您的limitPagination函數,您需要掛接到wp_link_pages_args 這也意味着您的limitPagination函數必須接受$r作為參數並返回修改后的$r而不是回顯輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM