2

次のようなページネーションを表示するために使用wp_link_pages()しています。

1
<a href="/2">2</a>
<a href="/3">3</a>
<a href="/4">4</a>

これは上記のようにフォーマットされた html 文字列を返すだけなので、現在のページ番号をスパンでラップして次のようにするのは難しいと思います。

<span class="current">1</span>
<a href="/2">2</a>
<a href="/3">3</a>
<a href="/4">4</a>

スペースで囲まれた数値をスパンタグでラップする方法は<a>?

4

2 に答える 2

2

このコードを functions.php に入れます

function custom_wp_link_pages( $args = '' ) {
    $defaults = array(
        'before' => '<p id="post-pagination">' . __( 'Pages:' ), 
        'after' => '</p>',`enter code here`
        '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;
}

そして、custom_wp_link_pages()

ソース: http://bavotasan.com/2012/a-better-wp_link_pages-for-wordpress/

于 2012-07-30T22:31:07.647 に答える
0

タグとして正規表現を使用する理由

次のようなものを使用する必要があります。

段落タグのページリンク

<?php wp_link_pages('before=<p>&after=</p>&next_or_number=number&pagelink=page %'); ?>

段落タグでラップされたページ リンクを表示します。

DIV のページリンク

<?php wp_link_pages('before=<div id="page-links">&after=</div>'); ?>

CSS 参照用に DIV 内のページ リンクを として表示します<div id="page-links">

ドキュメント参照: http://codex.wordpress.org/Function_Reference/wp_link_pages

于 2012-05-19T21:54:26.463 に答える