ねえ、私は現在のページ付けを変換しようとしています:
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でページネーションを扱った経験があまりありませんでした。私は自分で簡単にできるようにして、単にthe_sizeを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
のため、そして明らかに私はCSSでli:nth(2) { display: none; }
を使うことができるだけでした。しかし、最後のページ番号がa href
であることも私が望んでいないことです。したがって、これらすべての回避策を使用することは、単なる面倒な作業であり、CSSではなくcodexで行う必要があります。私はいくつかの解決策を試したが成功しなかった。
追加を無効にする方法
<span class="page-numbers dots">…</span>
?<a href>
?回避策は次のとおりです。
まずpaginate_links()
出力タイプを次のように変更します。
'type' => 'array',
その後、paginate_links()
の出力から previous 、 current 、および next の部分を収集できます。
関連クラスをターゲットにした簡単な例を示します。
$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
);