WordPressで構築するサイトで、デザイナーさんからこんなデザインをもらった。
ページ部分の表記が
< 01 02 03 >
になってる。
サイバーでカッチョイイから、ということみたいだが、できるかそんなことー!→できたー!
以下、私がやった時のやり方です。
参考記事(ありがとうございました!)
the_posts_pagination()のタグをBootstrap 3形式にする WordPressカスタマイズ事典
正規表現で数字の桁数を表す 名もないテクノ手
※「1桁の数字」を検出するのは意外と複雑なようですが(「15.2」の「1」と「5」と「2」がヒットしちゃったりするから)、今回は整数だとわかっているので簡略化した正規表現にとどめました
function.phpに下記を追加します。
function the_posts_pagination_custom( $args = array() ) {
$navigation = '';
// 1ページのみの場合は出力しません。
if ( $GLOBALS['wp_query']->max_num_pages > 1 ) {
$args = wp_parse_args( $args, array(
'mid_size' => 1,
'prev_text' => _x( 'Previous', 'previous post' ),
'next_text' => _x( 'Next', 'next post' ),
'screen_reader_text' => __( 'Posts navigation' ),
) );
// typeを固定します。今回の場合はlistです。
$args['type'] = 'list';
// ページ区切りリンクを準備します。
$links = paginate_links( $args );
if ( $links ) {
//1桁の場合は前に0を追加します。
//閉じタグはの場合との場合があるのでどちらでも対応できるように
$links = preg_replace(
'#(\b\d\b)([a-zA-Z]*)>#',
'0$1$2>',
$links);
$template = '%1$s';
$navigation = sprintf($template, $links);
}
}
echo $navigation;
}